我有一个数组,print_r($badges);
显示:
Array ( [0] => Array ( [0] => foobar [2] => foobar2 [4] => foobar3 ) )
我想循环并打印所有值:
$arrlength = count($badges);
for($x=0;$x<$arrlength;$x++)
{
echo $badges[$x];
echo "<br/>";
}
但它不起作用。我究竟做错了什么?
答案 0 :(得分:3)
您有嵌套数组。因此,您需要定位父数组的第一项(在索引[0]
),然后遍历子数组中的值:
foreach ( $badges[0] as $badge ) {
echo $badge . '<br>';
}
答案 1 :(得分:2)
您的问题是$badges
实际上在数组中包含数组。
以下是工作和简化代码:
foreach ($badges[0] as $badge) {
echo $badge;
echo "<br/>";
}
答案 2 :(得分:1)
您有一个嵌套数组 - 这就是您的print_r
显示Array ( [0] => Array ( [0] =>
的原因。此外,您的阵列中只有偶数键,因此使用for ($x = 0; $x < $arrlength; $x++)
不是最佳解决方案。你最好使用foreach
,它遍历每个数组元素。使用$badges[0]
访问内部数组,然后遍历它:
foreach ($badges[0] as $k => $v) {
echo "key: $k, value: $v" . PHP_EOL;
}
输出:
key: 0, value: foobar
key: 2, value: foobar2
key: 4, value: foobar3