【问题标题】:Insert Object data To Array PHP [duplicate]将对象数据插入数组PHP [重复]
【发布时间】: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 作为第二个参数传递,它将被解码为数组而不是对象。无需手动操作。

标签: php arrays json object


【解决方案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);}
    

    问题在于在每次迭代中将一个新数组分配给同一个变量,而不是向现有数组添加一个新项

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 2017-10-16
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多