1

此代码构建一个数组:

$size = sizeof($include_quotes);
  for ($i=0; $i<$size; $i++) {
    $quotes = $GLOBALS[$include_quotes[$i]]->quote($method);
    if (is_array($quotes)) $quotes_array[] = $quotes;
  }
}   

如果我

print_r($quotes_array);

我得到以下信息:

Array ( [0] => Array ( [id] => advshipper [methods] => Array ( [0] => Array ( [id] => 1-0-0 [title] => Trade Shipping [cost] => 20 [icon] => [shipping_ts] => [quote_i] => 0 ) [1] => Array ( [id] => 2-0-0 [title] => 1-2 working days [cost] => 3.2916666666667 [icon] => [shipping_ts] => [quote_i] => 1 ) [2] => Array ( [id] => 4-0-0 [title] => 2-3 working days [cost] => 2.4916666666667 [icon] => [shipping_ts] => [quote_i] => 2 ) [3] => Array ( [id] => 8-0-0 [title] => Click & Collect [cost] => 0 [icon] => [shipping_ts] => [quote_i] => 3 ) ) [module] => Shipping [tax] => 20 ) )

在某些情况下,我只希望将字段0中的数据传递到代码的下一部分。但是,使用

 $sliced_quotes_array = array_slice($quotes_array,0,1);

仍然返回所有结果。

获得公正的正确方法是什么:

Array ( [0] => Array ( [id] => advshipper [methods] => Array ( [0] => Array ( [id] => 1-0-0 [title] => Trade Shipping [cost] => 20 [icon] => [shipping_ts] => [quote_i] => 0 )

非常感谢任何帮助,因为我尝试了许多不同的方法,但还没有运气。

使用以下仍然返回相同的结果

$testarray = array(0 => $quotes_array[0]);
print_r($testarray);
4

3 回答 3

0

在对数组进行了一些阅读并经过一些试验之后,我找到了解决问题的方法。

我用了:

unset($quotes_array[0]['methods'][1]);

通过在方法之后更改索引号,我能够删除我不需要的任何运输选项,同时仍然保持功能。

于 2013-05-02T23:58:40.990 回答
0

这是你的数组:

在此处输入图像描述

当您说“我只希望将字段 0 中的数据传递到代码的下一部分”时,您的意思是您只希望接下来传递这些数据,对吗?:

Array (
    [0] => Array (
        [id] => advshipper
        [module] => Shipping
        [tax] => 20
    )
)

这是你想要的吗?

$newArray = array();

foreach ($quotes_array[0] as $items)
{
    if (!is_array($items))
    {
        $newArray[] = $items;
    }

}

$newArray将包含该数据。

更新

好的,明白了。你可以使用这个:

$newArray = $quotes_array[0]['methods'][0];

于 2013-05-02T17:01:04.577 回答
0

为什么不只使用数组构造函数并明确包含您需要的内容:

array(0 => $quotes_array[0]);
于 2013-05-02T14:27:52.223 回答