有人可以向我解释为什么这不起作用?我正在尝试将数组推入另一个数组,但它只返回$ 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;
}
答案 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
);