【问题标题】:Nested arrays with Php and SQL使用 PHP 和 SQL 的嵌套数组
【发布时间】:2017-11-09 10:54:29
【问题描述】:

我真的需要你的帮助。

我知道如何用 PHP 和 SQL 创建一个 json 数组。

我正在创造我的

但是我需要创建一个嵌套的,我有点迷路了。

我看到了许多其他类似的问题,但仍然无法得到它。

我希望我的数组看起来像这样:

"names": {
   "name_id": {
       "firstname": "john",
       "lastname": "doe",
       "age": 18,
       "menu": {
           "dinner": {
               "dinner1": "119",
               "dinner2": "229",
               "dinner3": "379",
               "dinner4": "559"
           }
        },
        "deep_link_url": "http:\/\/testurl.com\/?name_id=42422&ref=CC",
        "bonus_offers": "some_bonus"
   },

这是我的代码:

$return_arr = array();

$sql = "sp_getdata";
$fetch = sqlsrv_query($connection,$sql); 
while ($row = sqlsrv_fetch_array($fetch)) {
   $row_array['name_id'] = $row['name_id'];
   $row_array['firstname'] = $row['firstname'];
   $row_array['lastname'] = $row['lastname'];
   $row_array['age'] = $row['age'];
   $row_array['dinner1'] = $row['dinner1'];
   $row_array['dinner2'] = $row['dinner2'];
   $row_array['dinner3'] = $row['dinner3'];
   $row_array['dinner4'] = $row['dinner14'];
   $row_array['deep_link_url'] = url().'/name_id='.$name_id;
   $row_array['bonus_offers'] = $row['bonus_offer'];

   array_push($return_arr,$row_array);
}

echo json_encode($return_arr);

我把所有东西都放在一个里面。有什么办法让它们嵌套?

很抱歉,如果我的问题对某人来说不够清楚,但这就是我在脑海中的想象。请有人解释和帮助!

【问题讨论】:

  • 你的$row_array应该是多维数组
  • @geeth 那么我应该将 ti 更改为 "$row_array['menu']['dinner']['dinner1']" 还是类似的东西?
  • @geeth 如果不能请告诉我怎么做?
  • @AlivetoDie 你为什么不这样做?它确实

标签: php arrays multidimensional-array


【解决方案1】:

你需要这样做:-

$return_arr = array();

$sql = "sp_getdata";
$fetch = sqlsrv_query($connection,$sql); 
while ($row = sqlsrv_fetch_array($fetch)) {
   $row_array['name_id'] = $row['name_id'];
   $row_array['firstname'] = $row['firstname'];
   $row_array['lastname'] = $row['lastname'];
   $row_array['age'] = $row['age'];
   $row_array['menu']['dinner']['dinner1'] = $row['dinner1']; //check change
   $row_array['menu']['dinner']['dinner2'] = $row['dinner2']; //check change
   $row_array['menu']['dinner']['dinner3'] = $row['dinner3']; //check change
   $row_array['menu']['dinner']['dinner4'] = $row['dinner14']; //check change
   $row_array['deep_link_url'] = url().'/name_id='.$name_id;
   $row_array['bonus_offers'] = $row['bonus_offer'];

   $return_arr["names"][] = ["name_id"=>$row_array]; // instead of push assign directly
}

echo json_encode($return_arr);

演示输出:- https://eval.in/896214

【讨论】:

  • 不是 100% 我想要显示的内容,但感谢您给了我如何解决它的想法。真的很感激。只需进行一些更改,但这会使所有这些 json 数组更加清晰.. 谢谢
  • @Maria 很高兴为您提供帮助:):)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多