将对象数据插入数组PHP
我有这个JSON对象数组类型的数据,我想用键插入到数组中。如果我打印,数据如下所示:将对象数据插入数组PHP,php,arrays,json,object,Php,Arrays,Json,Object,我有这个JSON对象数组类型的数据,我想用键插入到数组中。如果我打印,数据如下所示: [{"comment":"hola hi ","datecreated":"2017-02-27 13:53:25"},{"comment":"hola hi harambeh ","datecreated" :"2017-02-27 13:53:30"}] 以下是我的相关代码: $data = json_decode($_REQUEST['array']); $formdata = []; foreac
[{"comment":"hola hi ","datecreated":"2017-02-27 13:53:25"},{"comment":"hola hi harambeh ","datecreated" :"2017-02-27 13:53:30"}]
以下是我的相关代码:
$data = json_decode($_REQUEST['array']);
$formdata = [];
foreach($data as $value){
$formdata = array('comment' => $value->comment, 'date_created' => $value->datecreated);
}
但是,结果数组仅获取最后一个对象,即
Array
(
[comment] => hola hi harambeh
[date_created] => 2017-02-27 13:53:30
)
显然,我需要的是每一份数据,而不仅仅是最后一份。这在JavaScript中应该很简单
非常感谢您的任何想法和帮助。请尝试下面的内容
您需要将$formdata更改为$formdata[]
更换
foreach($data as $value){
$formdata = array('comment' => $value->comment, 'date_created' => $value->datecreated);
}
与
foreach($data as $value){
$formdata[] = array('comment' => $value->comment, 'date_created' => $value->datecreated);
}
您正在更新整个阵列,您需要的是向阵列中添加一个项,以便需要
[]
。改变
$formdata = array('..........
到
改变这个
foreach($data as $value){
$formdata = array('comment' => $value->comment, 'date_created' => $value->datecreated);}
对此
foreach($data as $value){
$formdata[] = array('comment' => $value->comment, 'date_created' => $value->datecreated);}
问题是在每次迭代中将一个新数组分配给同一个变量,而不是向现有数组添加一个新项在foreach循环中使用
$formdata[]
,不需要在新数组中插入,因为如果使用json\u decode($\u REQUEST['array',true)
读取数组,则应该阅读关于json\u decode()
。只需将true
作为第二个参数传递,它将被解码为数组而不是对象。不需要手动操作。我想你的意思是相反的。为什么不直接将true
作为json_decode()
的第二个参数传递呢?如果他需要一些特定的数组键,那么上面的解决方案会更好……他将key datecreated更改为date_created。这很公平,但你的“Rreplace…with…”仍然是错误的选择对不起,兄弟。。。如果可能的话,请编辑答案。谢谢
foreach($data as $value){
$formdata[] = array('comment' => $value->comment, 'date_created' => $value->datecreated);}