<?php
$products = array(
array("name"=>"apple", "count"=>1),
array("name"=>"google", "count"=>2),
array("name"=>"ms", "count"=>4)
);
echo "one:<br/>";
for ($i=0; $i < count($products); $i++) {
foreach ($products[$i] as $key => $value) {
echo $key."-".$value.",";
}
echo "<br/>";
}
echo "<br/>two:<br/>";
for ($j=0; $j < count($products); $j++) {
while(list($k, $v) = each($products[$j])){
echo $k."|".$v.",";
}
echo "<br/>";
}
?>
此代码只输出:
one:
name-apple,count-1,
name-google,count-2,
name-ms,count-4,
two:
我想知道为什么这两部分没有输出?
答案 0 :(得分:2)
因为每个子数组的内部数组指针已经在数组的末尾,并且当您尝试使用each()
时,没有任何内容可以返回。试试这个:
echo "<br/>two:<br/>";
for ($j=0; $j < count($products); $j++) {
reset( $products[$j]);
while(list($k, $v) = each($products[$j])){
echo $k."|".$v.",";
}
echo "<br/>";
}
所有它正在调用reset()
来重置数组指针。