我有一个我声明的数组:
$health_array = array( );
对于每次迭代,我都尝试将这3个项目放在其中:
$health_array["num_problems"] = $num_problems;
$health_array["category_id"] = $category_id;
$health_array["category_name"] = $category_name;
但是当我循环播放数组时,我得到了胡言乱语。以下是我如何遍历它:
foreach ($health_array as $i => $row)
{
echo '<p>'.$row['category_name'].' '.$row['category_id'].' '.$row['num_problems'].'</p>';
}
知道我做错了吗?
谢谢!
答案 0 :(得分:3)
你的问题来自这样一个事实:你想要做一个多维数组而你正在创建一个单维数组,每次重写相同的3个元素。
您应该执行以下操作:
$health_array = array();
$tmp = array();
$tmp["num_problems"] = 5;
$tmp["category_id"] = 8;
$tmp["category_name"] = "something";
$health_array[] = $tmp;
$tmp["num_problems"] = 15;
$tmp["category_id"] = 22;
$tmp["category_name"] = "something else";
$health_array[] = $tmp;
foreach ($health_array as $h)
{
echo $h["num_problems"]." - ".$h["category_id"]." - ".$h["category_name"]."<br />";
}
答案 1 :(得分:2)
对于每次迭代,我都尝试将这3个项目放在其中:
$ health_array [“num_problems”] = $ num_problems;
$ health_array [“category_id”] = $ category_id;
$ health_array [“category_name”] = $ category_name;
看起来你打算像这样构建你的数组:
$health_array[] = array(
"num_problems" => $num_problems,
"category_id" => $category_id,
"category_name" => $category_name
);
这会生成一个数组数组,之前您为每次迭代覆盖了相同数组的键。