【问题标题】:How to split an array into two with considering values如何在考虑值的情况下将数组拆分为两个
【发布时间】:2017-10-06 03:33:06
【问题描述】:

抱歉,我搜索了许多与此问题相关的主题,但找不到对我的案例有用的内容。

我有一个这样的数组:

[
  "service_name" => [
    0 => "1212"
    1 => "zzz"
  ]
  "service_price" => [
    0 => "12"
    1 => "11"
  ]
  "time" => [
    0 => "121"
    1 => "1"
  ]
  "service_in_country" => [
    0 => "usa"
    1 => "usa"
  ]
  "service_in_city" => [
    0 => "la"
    1 => "lv"
  ]
]

我想要这个:

   [
     "service_name" =>1212,
     "service_price"=>12,
     "time" => 121,
     "service_in_country"=>usa,
     "service_in_city"=>la
   ],
   [
     "service_name" =>zzz,
     "service_price"=>11,
     "time" => 1,
     "service_in_country"=>usa,
     "service_in_city"=>lv
   ]

实际上所有第一个key=>value 成为一个新数组,所有第二个key=>value 成为新的第二个数组

附注:

如果你知道任何助手或集合,我正在使用 Laravel。

【问题讨论】:

  • 你试过array_merge吗?
  • 一个普通的 foreach 成功地做到了这一点

标签: php arrays laravel multidimensional-array


【解决方案1】:

你可以试试这个功能

function diverse_request_array($vector = array()) 
{
    $result = array();
    foreach($vector as $key1 => $value1)
    {
        foreach($value1 as $key2 => $value2)
        {
            $result[$key2][$key1] = $value2;
        }
    }
    return $result;
}

结果:

array(2) {
  [0]=>
  array(5) {
    ["service_name"]=>
    string(4) "1212"
    ["service_price"]=>
    string(2) "12"
    ["time"]=>
    string(3) "121"
    ["service_in_country"]=>
    string(3) "usa"
    ["service_in_city"]=>
    string(2) "la"
  }
  [1]=>
  array(5) {
    ["service_name"]=>
    string(3) "zzz"
    ["service_price"]=>
    string(2) "11"
    ["time"]=>
    string(1) "1"
    ["service_in_country"]=>
    string(3) "usa"
    ["service_in_city"]=>
    string(2) "lv"
  }
}

【讨论】:

    【解决方案2】:

    可以这样遍历数组,检查live demo

    foreach($array as $k => $v)
    {
        foreach($v as $ind => $val)
        {
            $result[$ind][$k] = $val;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-08-22
      • 2011-08-28
      • 2020-12-01
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多