【问题标题】:Php array of arrays to json in loopphp数组数组到循环中的json
【发布时间】:2017-02-14 09:08:03
【问题描述】:

我是php新手,请帮助我的代码。

我正在尝试为 IOS 应用程序创建 PHP json。 Json 应该是这样的

{"items": [
    {
        "ID":12, 
        "name1":"some name",
        "name2":"some name2"            
    },
    {
        "ID":13,
        "name1":"another name",
        "name2":"another name2"
    },] }

这是我的 PHP 代码部分

$keys = array(ID, name1, name2);
while ($row = mysqli_fetch_array($result)) 
{
extract($row);
$values = array($row['ID'], $row['name1'], $row['name2']);
$response = array_combine($keys, $values);
header('Content-Type: application/json, charset=utf-8');
echo json_encode($response, JSON_UNESCAPED_UNICODE);
}

这给了我这样的结果

 {
        "ID":12, 
        "name1":"some name",
        "name2":"some name2"            
    }
    {
        "ID":13,
        "name1":"another name",
        "name2":"another name2"
    }

谁能帮我解决这个问题? 提前致谢。

【问题讨论】:

  • 你快到了。你得到的结果是一个数组。您想要的结果是一个带有 Items 属性的 JSON 对象,该属性包含该数组。
  • 您最好在 SO 聊天中寻求帮助 -chat.stackoverflow.com/rooms/11/php,因为这是一个更好的代码审查和讨论论坛。

标签: php arrays json


【解决方案1】:

您需要构建您的数组,然后在循环之外对 JSON 进行编码;

$keys = array(ID, name1, name2);
$items = array();
while ($row = mysqli_fetch_array($result)) 
{
    extract($row);
    $values = array($row['ID'], $row['name1'], $row['name2']);
    $item = array_combine($keys, $values);
    $items[] = $item;
}

header('Content-Type: application/json, charset=utf-8');
echo json_encode(array("items"=>$items), JSON_UNESCAPED_UNICODE);

在这里,我们将您的项目数组构建成$items,然后在循环之外对它们进行编码。

【讨论】:

  • 非常感谢,这正是我所需要的。我正在寻找大约 3 天的解决方案)))
  • 知道怎么做总是很容易!
【解决方案2】:

看来你是新手或者对 json 还一无所知

但我会尽力帮助你

只是简单地将它存储在关联数组中,并分配items作为它的索引

   $response = array(
      'items' => array_combine($keys, $values)
   );
   header('Content-Type: application/json, charset=utf-8');
   echo json_encode($response, JSON_UNESCAPED_UNICODE);

【讨论】:

  • 谢谢你的回答,我的json对我来说真的很新。你的建议给了我几乎相同的结果:( {"items":{"ID":"15","name1":"some name","name2":"some name2"}}{"items":{"ID ":"16","name1":"另一个名字","name2":"另一个名字2"}}
猜你喜欢
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 2011-06-11
  • 2013-02-06
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多