数组中的PHP数组

时间:2015-06-01 17:59:53

标签: php arrays foreach

有人可以向我解释为什么这不起作用?我正在尝试将数组推入另一个数组,但它只返回$ votes数组中的最后一项。

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 个答案:

答案 0 :(得分: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
);