foreach最后一个 php,为什么这样的二维数组foreach后只有最后一个值输入?

$res = array(

array(

'goods_id' => 14,

'goods_number' => 1

),

array(

'goods_id' => 16,

'goods_number' => 1

),

array(

'goods_id' => 18,

'goods_number' => 1

)

);

上面数组,我想遍历出goods_id 从14 到 18,也就是14,15,16,17,18 ,从而得到goods_id 对应的 goods_number,如果goods_id不存在数组里,goods_number就给予0给它。

foreach($res as $value)

{

if($value['goods_id'] == 14)

{

echo $value['goods_number'];

echo "

";

}

else

{

echo 0;

echo "

";

}

if($value['goods_id'] == 15)

{

echo $value['goods_number'];

}

else

{

echo 0;

echo "

";

}

if($value['goods_id'] == 16)

{

echo $value['goods_number'];

}

else

{

echo 0;

echo "

";

}

if($value['goods_id'] == 17)

{

echo $value['goods_number'];

}

else

{

echo 0;

echo "

";

}

if($value['goods_id'] == 18)

{

echo $value['goods_number'];

}

else

{

echo 0;

echo "

";

}

}

为什么我这样foreach 不行呢?

我要的结果是:

goods_id:14 时 goods_number:1

goods_id:15 时 goods_number:0

goods_id:16 时 goods_number:1

goods_id:17 时 goods_number:0

goods_id:18 时 goods_number:1

所以应该echo的结果是

1

0

1

0

1

为什么我的foreach 得到的不是这样的结果呢?

回复讨论(解决方案)

$res = array(array('goods_id' => 14,'goods_number' => 1),array('goods_id' => 16,'goods_number' => 1),array('goods_id' => 18,'goods_number' => 1));$newArr = array();foreach ($res as $key => $value) {$newArr[$value['goods_id']] = $value['goods_number'];}//var_dump(array_values($res));exit;$range = range(14, 18);foreach ($range as $keys => $values) {if(array_key_exists($values, $newArr)){echo 'goods_id:'.$values.' 时 goods_number:'.$newArr[$values];echo '

';}else{echo 'goods_id:'.$values.' 时 goods_number:0';echo '

';}}

$res = array(array('goods_id' => 14,'goods_number' => 1),array('goods_id' => 16,'goods_number' => 1),array('goods_id' => 18,'goods_number' => 1));$newArr = array();foreach ($res as $key => $value) {$newArr[$value['goods_id']] = $value['goods_number'];}//var_dump(array_values($res));exit;$range = range(14, 18);foreach ($range as $keys => $values) {if(array_key_exists($values, $newArr)){echo 'goods_id:'.$values.' 时 goods_number:'.$newArr[$values];echo '

';}else{echo 'goods_id:'.$values.' 时 goods_number:0';echo '

';}} 学习了。

$res = array( array( 'goods_id' => 14, 'goods_number' => 1 ), array( 'goods_id' => 16, 'goods_number' => 1 ), array( 'goods_id' => 18, 'goods_number' => 1 ));for($i=14; $i<=18; $i++) { if($i == $res[0]['goods_id']) { echo $res[0]['goods_number']; array_shift($res); }else echo 0; echo '

';}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值