Организация массива

У меня есть массив, который я хотел бы преобразовать в определенный формат.

array:4 [▼
  "ROWID" => array:3 [▼
    0 => 0
    1 => 1
    2 => 2
  ]
  "First Name" => array:3 [▼
    0 => "BILLY"
    1 => "SALLY"
    2 => "TYLER"
  ]
  "Last Name" => array:3 [▼
    0 => "RAY"
    1 => "SUE"
    2 => "TERRIER"
  ]
  "Middle Name" => array:3 [▼
    0 => "B."
    1 => "S."
    2 => "T."
  ]
]

Как я могу расположить массив так, чтобы он выглядел так:

array:4 [▼
  "ROWID" => array:3 [▼
    0 => 0
    1 => 1
    2 => 2
  ]
  "First Name" => array:3 [▼
    0 => "BILLY"
    1 => "SALLY"
    2 => "TYLER"
  ]
  "Middle Name" => array:3 [▼
    0 => "B."
    1 => "S."
    2 => "T."
  ]
  "Last Name" => array:3 [▼
    0 => "RAY"
    1 => "SUE"
    2 => "TERRIER"
  ]
]

Где меняются позиции массивов фамилии и отчества? Спасибо!

Зачем тебе это нужно? Это ассоциативный массив, какую проблему вы пытаетесь решить?

Andreas 16.10.2018 19:16

Я добавил для вас ответ. Посмотрите stackoverflow.com/a/52840710/1138192

Always Sunny 17.10.2018 04:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
88
4

Ответы 4

Попробуйте таким способом изменить формат $ existing_array на $ ожидаемый_массив, просто настроив / переключив элемент массива по индексу, например $existing_array['Middle Name'] и $existing_array['Last Name'].

<?php
$existing_array =  ["ROWID" =>[0 => 0,1 => 1,2 => 2],
  "First Name" => [0 => "BILLY",1 => "SALLY",2 => "TYLER"],
  "Last Name" => [0 => "RAY",1 => "SUE",2 => "TERRIER"],
  "Middle Name" =>[0 => "B.",1 => "S.",2 => "T."]];

$expected_array = ['ROWID'=>$existing_array['ROWID'],'First Name'=>$existing_array['First Name'],'Middle Name'=>$existing_array['Middle Name'],'Last Name'=>$existing_array['Last Name']];
print_r($expected_array);

ДЕМО:https://3v4l.org/GlqXk

@ Ice76 правда, но это легко исправить.

Andreas 16.10.2018 19:18

Вы можете проверить эту документацию http://php.net/manual/en/function.array-replace.php

Используя функцию замены массива из php, вы можете поменять местами значение массива с помощью ключа, например

$array = ["a","b","c"];
$change1 = array(0 => "d");
$try = array_replace($array,$change1);
//expected result
$array = ["a","b","d"];

А в твоем случае

$array = ["ROWID[]", "First Name[]", "Last Name[]", "Middle Name[]"]
$change1 = array(2 => Middle Name[], 3 => Last Name[])
$result = array_replace($array,$change1)

Надеюсь, это поможет!

<?php

$arr = array(
"ROWID" => array(
    0 => 0,
    1 => 1,
    2 => 2
),
"First Name" => array(
    0 => "BILLY",
    1 => "SALLY",
    2 => "TYLER"
),
"Last Name" => array(
    0 => "RAY",
    1 => "SUE",
    2 => "TERRIER"
),
"Middle Name" => array(
    0 => "B.",
    1 => "S.",
    2 => "T."
  )
);

foreach ($arr as $key => $value) {
if ($key == 'Last Name') {
    $temp = $arr[$key];
    unset($arr[$key]);
    $arr['Last Name'] = $temp;
 }
}

var_dump($arr);

Выход:

array (size=4)
'ROWID' => 
   array (size=3)
     0 => int 0
     1 => int 1
     2 => int 2
'First Name' => 
   array (size=3)
     0 => string 'BILLY' (length=5)
     1 => string 'SALLY' (length=5)
     2 => string 'TYLER' (length=5)
'Middle Name' => 
   array (size=3)
     0 => string 'B.' (length=2)
     1 => string 'S.' (length=2)
     2 => string 'T.' (length=2)
'Last Name' => 
   array (size=3)
     0 => string 'RAY' (length=3)
     1 => string 'SUE' (length=3)
     2 => string 'TERRIER' (length=7)

Вы можете использовать произвольную сортировку по ключу, примерно так. Его также можно легко изменить и отрегулировать.

$ranking = array(
    'ROWID',
    'First Name',
    'Middle Name',
    'Last Name'
);

uksort( $name, function ( $a, $b ) use ( $ranking ) {
    return array_search ( $a, $ranking ) < array_search ( $b, $ranking ) ? -1 : 1;
} );

Вот демонстрация: ДЕМО

Другие вопросы по теме