猿问

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

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

        }

    }

}


潇湘沐
浏览 206回答 2
2回答

杨__羊羊

您的问题是您正试图将包含的数组'title' => 'x'与另一个包含'title' => 'y'.&nbsp;由于它们都包含相同的键,因此第二个会覆盖第一个。您需要更改此行:$json&nbsp;=&nbsp;array_merge($json,&nbsp;$title_array);至$json[]&nbsp;=&nbsp;$title_array;然后你会得到一个带有标题的数组数组,例如[['title'&nbsp;=>&nbsp;'x'],&nbsp;['title'&nbsp;=>&nbsp;'y']]

智慧大石

代替:$json&nbsp;=&nbsp;array_merge($json,&nbsp;$title_array);通过以下:array_push($json,&nbsp;$title_array);&nbsp;//&nbsp;it&nbsp;will&nbsp;push&nbsp;the&nbsp;the&nbsp;new&nbsp;array&nbsp;to&nbsp;`$json`
随时随地看视频慕课网APP
我要回答