PHP 2D阵列重组,HASHxARRAY - > ARRAYxHASH

时间:2012-01-19 12:09:37

标签: php arrays object multidimensional-array

我不认为这可以做到(不论我自己的功能),但我会问任何方式。

我在PHP中有一个数组,如

array(
  'item1' => array(
               'Hello',
               'Good',
               ),
  'item2' => array(
               'World',
               'Bye',
               ),
  )

各个字段来自网络表单

我想将其重新排列为以下

array(
  array(
    'item1' => 'Hello',
    'item2' => 'World',
     ),
  array(
    'item1' => 'Good',
    'item2' => 'Bye',
     ),
  )

从字段数组中创建一个对象数组

我可以编写一个函数来执行此操作。

但是我想知道内置数组函数中的一个可以为我实现这个吗?

3 个答案:

答案 0 :(得分:1)

没有内置函数可以执行此操作 - 但这是一个用户定义的函数:

function convert_array ($array) {
  $result = array();
  foreach ($array as $key => $inner) {
    for ($i = 0; isset($inner[$i]); $i++) {
      $result[$i][$key] = $inner[$i];
    }
  }
  return $result;
}

See it working

答案 1 :(得分:1)

肯定不是最有效的,但接近“一个功能”就像你会得到的那样。 ;)

array_map(function ($i) use ($array) { return array_combine(array_keys($array), $i); }, call_user_func_array('array_map', array_merge(array(function () { return func_get_args(); }), $array)));

请参阅http://codepad.viper-7.com/xIn3Oq

答案 2 :(得分:0)

没有。没有内置功能可以做到这一点。