将对象数据插入数组PHP [重复]
Posted
技术标签:
【中文标题】将对象数据插入数组PHP [重复]【英文标题】:Insert Object data To Array PHP [duplicate] 【发布时间】:2017-07-17 17:02:55 【问题描述】:我有这个 JSON 对象数组类型数据,我想用键插入到数组中。如果我做print_r,看到的数据如下:
["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 中应该很容易。
非常感谢任何想法和帮助。
【问题讨论】:
在 foreach 循环中使用$formdata[]
并且不需要插入新数组,因为如果使用 json_decode($_REQUEST['array'],true)
会读取数组 manual
您应该阅读有关json_decode()
的manual。只需将true
作为第二个参数传递,它将被解码为数组而不是对象。无需手动操作。
【参考方案1】:
试试下面
你需要将 $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);
【讨论】:
我认为你的意思是相反的。为什么不直接将true
作为第二个参数传递给json_decode()
?
如果他需要一些特定的数组键,那么上面的解决方案更好......
他将密钥 datecreated 更改为 date_created。
很公平,但是您的“Rreplace ... with ...”仍然是错误的方法。 :)
对不起兄弟...如果可能,请编辑答案..谢谢【参考方案2】:
您正在更新整个数组,您需要向数组中添加一个项目,因此您将需要[]
。改变
$formdata = array('..........
到
$formdata[] = array('......
【讨论】:
【参考方案3】:改变这个
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);
问题在于在每次迭代中将一个新数组分配给同一个变量,而不是向现有数组添加一个新项
【讨论】:
以上是关于将对象数据插入数组PHP [重复]的主要内容,如果未能解决你的问题,请参考以下文章