为什么数组合并在For循环中不起作用

时间:2019-05-06 22:55:05

标签: php arrays

在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);
        }
    }
}

2 个答案:

答案 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`