试图在PHP中做多维数组,但出了点问题

时间:2011-12-10 16:20:16

标签: php

我有一个我声明的数组:

$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>';
} 

知道我做错了吗?

谢谢!

2 个答案:

答案 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
);

这会生成一个数组数组,之前您为每次迭代覆盖了相同数组的键。