php迭代数组的方法,php – 迭代多维数组

基本上,你循环遍历$item数组,如下所示:

array(7) {

["ID"]=>string(6) "123"

["QTY"]=>string(1) "1"

["MODEL"]=>string(11) "sdfsd"

["IMAGE"]=>string(0) ""

[1]=>

array(3) {

["option_name"]=>string(8) "Color"

["option_value"]=>string(10) "Blue"

["option_price"]=>string(6) "0.0000"

}

所以在第一次迭代中,$option将为123,尝试访问’123′[‘option_name’]将发出警告.你真正想做的是:

foreach($item[1] as $key => $option)

{

if ($key !== 'option_price')

{

echo $option;

}

}

//or:

echo $item['ID'], $item[1]['option_name'], $item['option_value'];

这就是为什么你的代码不能产生预期结果的原因.

如果子数组并不总是将1作为键,请尝试:

foreach($item as $foo)

{

if (is_array($foo))

{

echo $foo['option_name'], $foo['option_value'];

break;//we have what we needed, no need to continue looping.

}

}

这是获得所有选项的最通用方法(无论有多少)

foreach($itemlist as $item)

{

echo $item['ID'];

foreach($item as $sub)

{

if (is_array($sub))

{

foreach($sub as $key => $option)

{

echo $key, ' => ', $option;

}

}

}

}

但是看到你的选项数组看起来都有数字索引,你也可以试试这个:

foreach($itemlist as $item)

{

echo $item['ID'];

for ($i=1;isset($item[$i]);$i++)

{

foreach($item[$i] as $key => $option)

{

echo $key, ' => ', $option;

}

}

}

你可以用以下代码替换for循环:

$i=0;//or $i = 1

while(isset($item[++$i]))// or isset($item[$i++]), if $i is 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值