如何减少数组嵌套

时间:2011-11-23 03:45:08

标签: php arrays

基本上我的数组嵌套得太深了。它有三个sub,sub,sub数组,我只想保留中间数。

我发现很难解释它,但我拥有的是:

"data": [
  {
  "order": 
      {
        "id": "1,", 
        "mail": {
        "mail1": "X";
        "mail2": "X";
         },
      },
      {
        "id": "2,", 
        "amount": "X", 
      },
   }
 ],
 "data": [
   {
  "order": {
        "id": "3,", 
        "amount": "X", 
      },
    }
 ],

我需要删除第一个和最后一个子数组,所以我只得到一个嵌套:

     [1] {
        "id": "1@hotmail.com,", 
        "mail1": "X", 
        "mail2": "X", 
      },
     [2] {
        "id": "2,", 
        "amount": "X", 
      },
     [3] {
        "id": "3,", 
        "amount": "X", 
      },

我不知道这是否有意义。我确信这不是很难做到,但我只是设法创建一个包含所有值的数组,但是我丢失了所有子数组。

这是怎么做到的? (至少删除第一个数组)。

2 个答案:

答案 0 :(得分:0)

试试这个:

$finalArr = array();
foreach($data as $key => $val) {
  array_push($finalArr, $val);
}
print_r($finalArr);

希望有所帮助

答案 1 :(得分:0)

你的数组结构仍然无效,所以我不能肯定地说,但这些内容应该是:

$result = array();
foreach ($array['data'] as $order) {
    $order = $order['order'];
    if (isset($order['mail'])) {
        $order = array_merge($order, $order['mail']);
        unset($order['mail']);
    }
    $result[] = $order;
}