2011-12-10 1 views
1

私はこのように宣言配列持た行く:はPHPで多次元配列をやろうとしたが、何かが間違っ

$health_array["num_problems"] = $num_problems; 
$health_array["category_id"] = $category_id; 
$health_array["category_name"] = $category_name; 
:私はこのようにそれではこれら3つの項目を配置しよう反復ごと

$health_array = array(); 

しかし、私は配列をループするときに私はぎこちない取得します。ここでループする方法は次のとおりです。

foreach ($health_array as $i => $row) 
{ 
    echo '<p>'.$row['category_name'].' '.$row['category_id'].' '.$row['num_problems'].'</p>'; 
} 

私は間違っていますか?

ありがとうございます!

+0

あなたの出力はどのように見えますか? – Jon

+0

期待される結果は何ですか?あなたは何を得ていますか? – thwd

答えて

3

あなたの問題は、多次元配列を作成したいし、同じ3つの要素を毎回上書きすることによって1次元の配列を作成しているという事実に由来します。私はこのようにそれではこれら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 />"; 
    } 
2

あなたのような何かを行う必要があります

$ 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 
); 

これは、以前にあなたが反復ごとに同じ配列のキーを上書きした配列の配列を、可能に。