Сортировать многомерный массив в последовательности ключей - PullRequest
0 голосов
/ 06 апреля 2020

По сути, я создаю html входные данные формы, которые имеют динамические c входы. Например. В приведенном ниже примере, если пользователь хочет увеличить тип unit_type, он может добавить новый вход из внешнего интерфейса и отправить его в хранилище

Примечание. Если пользователь добавит тип unit_type, все остальные ключи будут добавлены автоматически. Например, если пользователь попытается увеличить unit_type, тогда unit_address и все остальные входы соответственно увеличатся.

Прямо сейчас у меня есть такой массив

   array:7 [
  "unit_type" => array:2 [
    0 => null
    1 => null
  ]
  "unit_address" => array:2 [
    0 => null
    1 => null
  ]
  "unit_phone" => array:2 [
    0 => null
    1 => null
  ]
  "fax" => array:2 [
    0 => null
    1 => null
  ]
  "installed_capacity" => array:2 [
    0 => null
    1 => null
  ]
  "production_capacity" => array:2 [
    0 => null
    1 => null
  ]
  "unit_email" => array:2 [
    0 => null
    1 => null
  ]
]

Ожидаемый результат

[
  [
     //Here all keys contain the first values of all arrays
    'unit_type'=>'first_value',
    'unit_address'=>'first_value',
    'unit_phone'=>'first_value',
    'fax'=>'first_value',
    'installed_capacity'=>'first_value',
    'production_capacity'=>'first_value',
    'unit_email'=>'first_value'
  ],

  [
    //Here all keys contain the second values of all arrays
   'unit_type'=>'second_value',
   'unit_address'=>'second_value',
   'unit_phone'=>'second_value',
   'fax'=>'second_value',
   'installed_capacity'=>'second_value',
   'production_capacity'=>'second_value',
   'unit_email'=>'second_value'
 ]
]

1 Ответ

0 голосов
/ 06 апреля 2020

L oop через существующие возвращаемые данные и создайте новый массив следующим образом:

$input_array = []; //your data received from the front end
$return_array = []; //structured data return

foreach($input_array as $field => $fieldData){

    foreach ($fieldData as $key => $data){

        $return_array[$key][$field] = $data;
    }
}
...