PHP 2D Array Реструктуризация, HASHxARRAY -> ARRAYxHASH - PullRequest
1 голос
/ 19 января 2012

Я не думаю, что это можно сделать (без моей собственной функции), однако я спрошу в любом случае.

У меня есть массив в PHP, как

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

Отдельные поля взяты из веб-формы

Я хочу изменить его на следующее

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

Создание массива объектов из массивов полей

Я мог бы написать функцию для этого.

Однако мне было интересно, может ли одна из встроенных функций массива добиться этого для меня?

Ответы [ 3 ]

1 голос
/ 19 января 2012

Нет встроенной функции для этого - но вот пользовательская, которая будет:

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;
}

Посмотри, как работает

1 голос
/ 19 января 2012

Скорее всего, не самый эффективный, но настолько близкий к "одной функции" , насколько вы получите.;)

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 .

0 голосов
/ 19 января 2012

Нет.Нет встроенной функции, которая бы это делала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...