2015-06-01 62 views
1

有人可以向我解釋爲什麼這不起作用嗎?我試圖將一個數組推到另一個數組中,但它只能返回$ votes數組中的最後一項。陣列中的PHP數組

foreach($json['area'] as $row) { 
$name = $row['name']; 
$group = $row['array']['group']; 
$majority = $row['array']['majority']; 
$candidates = $row['array']['candidates']; 
foreach ($candidates as $candidate) { 
    $vote = $candidate["votes"]; 
    $candi = $candidate["name"]; 
    $votes = array("vote" => $vote, "candidate" => $candi); 
} 
$array = array("name" => $name, "group" => $group, "majority" => $majority, "votes" => $votes); 

    $results[] = $array; 
} 

回答

1

外部循環的每次迭代只生產單一$votes陣列,看似單個候選人,在這一行:

$votes = array("vote" => $vote, "candidate" => $candi); 

如果你想捕捉多個項目,其中陣列的每個在排,你還需要使它成爲一個多維數組:

$candidates = $row['array']['candidates']; 
$votes = []; 
foreach ($candidates as $candidate) { 
    $votes[] = array(
     "vote"  => $candidate["votes"], 
     "candidate" => $candidate["name"] 
    ); 
} 

$array = array(
    "name"  => $name, 
    "group" => $group, 
    "majority" => $majority, 
    "votes" => $votes 
); 
+0

謝謝你的解釋! – Dave