$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 に対応するグッズ番号が取得されます。グッズ ID が配列内に存在しない場合、グッズ番号には 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
したがって、エコーの結果は次のようになります。 be
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 '<br />'; }else{ echo 'goods_id:'.$values.' 时 goods_number:0'; echo '<br />'; }}
$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 '<br />'; }else{ echo 'goods_id:'.$values.' 时 goods_number:0'; echo '<br />'; }}