【问题标题】:PHP how to make one sqaure bracket for all json objectPHP如何为所有json对象制作一个方括号
【发布时间】:2023-03-05 14:26:02
【问题描述】:

以下是我的php代码。非常感谢

$data = array();
 foreach ($row as $rowk) {
  $data[] = array(
      'message'   => $row['traditionalmessage'],
      'phone'   => $row['telMobile']

      );
      break;
 }

echo json_encode($data);

我目前的结果

[{"message":"B\u578b\u809d\u708e\u75ab\u82d7\u4e0b\u4e00\u500b\u6ce8\u5c04\u671f\u4e3a2017-06-30\r\n","phone":"96709394"}][{"message":"\u75ab\u82d7\u540d\u7a314\u4e0b\u4e00\u500b\u6ce8\u5c04\u671f\u4e3a2017-06-30\r\n","phone":"96709394"}][{"message":"\u4fe1\u606f","phone":"55503234"}]

我想要的结果

[{"message":"B\u578b\u809d\u708e\u75ab\u82d7\u4e0b\u4e00\u500b\u6ce8\u5c04\u671f\u4e3a2017-06-30\r\n","phone":"96709394"},{"message":"\u75ab\u82d7\u540d\u7a314\u4e0b\u4e00\u500b\u6ce8\u5c04\u671f\u4e3a2017-06-30\r\n","phone":"96709394"},{"message":"\u4fe1\u606f","phone":"55503234"}]

【问题讨论】:

  • 尝试删除第二个$data之后的[]
  • 我无法重现该问题。这只会在数组中生成一个项目,因为您有break。如果我删除它,我会得到你想要的结果。
  • @CTravel — 这将导致 $data 被新数组覆盖,而不是附加到。
  • @Quentin true, 只是为了重现问题.. 确实不可能重现他的错误..

标签: php arrays json


【解决方案1】:

在 [] 中表示的 JSON 数组和 {} 中表示的对象中,因此在理想情况下,您应该拥有对象数组而拥有数组数组。

试试这样的:

$data = array();

foreach ($row as $rowk) {
    $obj = new stdClass();
    $obj->message = $row['traditionalmessage'];
    $obj->phone = $row['telMobile'];

    $data[] = $obj;
}

echo json_encode($data);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2020-12-21
    相关资源
    最近更新 更多