在php中循环时将数组推送到数据

我正在使用 foreach 循环,在获取用户信息时,我将收到一个数组。问题是我在另一个数组之外得到了那个数组。


我试过使用 array_push 但它说第一个参数应该是一个数组,如果我把数组放在第一个参数中,我会得到数字作为输出。我尝试使用 array_merge 但它说第二个参数不是数组。


$query = $news->getNewsGrihaLimit($offset, 10);


    if(is_array($query) || is_object($query)){


        $json = array();


        foreach($query as $question){


            $authorDetail = $writer->getAuthorById($question->id);


            $json = array(


            'news' => $question,


            'authorDetail' => $authorDetail


        );


           echo json_encode($json); 


        }



    }


撒科打诨
浏览 211回答 1
1回答

婷婷同学_

您需要将作者详细信息分配为$question对象的属性。此外,您需要将值推送到一个数组中,以便获得所有结果,而不是在每次循环时覆盖它。改变:$json = array(              'news' => $question,              'authorDetail' => $authorDetail             );至$question->authorDetail = $authorDetail;$json[] = array('news' => $question);
打开App,查看更多内容
随时随地看视频慕课网APP