在for循环中,我正在合并数组,但是在循环的末尾仅添加了最后一个。
$result = json_decode($response['body']);
if(isset($result->{'items'})) {
$count = count($result->{'items'});
} else {
$count = 0;
}
$json = [];
if($count > 0) {
for ($i=0; $i < $count; $i++) {
if (isset($result->{'items'}[$i]->{'title'})) {
$title = $result->{'items'}[$i]->{'title'};
$title_array = array('title' => $title);
$json = array_merge($json, $title_array);
}
}
}
答案 0 :(得分:2)
您的问题是,您试图将包含'title' => 'x'
的数组与包含'title' => 'y'
的另一个数组合并。由于它们都包含相同的密钥,因此第二个将覆盖第一个。您需要更改此行:
$json = array_merge($json, $title_array);
到
$json[] = $title_array;
然后您将获得一个带有标题的数组数组,例如
[['title' => 'x'], ['title' => 'y']]
答案 1 :(得分:0)
替换:
$json = array_merge($json, $title_array);
通过以下方式:
array_push($json, $title_array); // it will push the the new array to `$json`