Транспонировать многомерный массив PHP с предопределенными ключами - PullRequest
1 голос
/ 05 мая 2020

У меня есть многомерный массив с 3 ключами ("длина", "ширина" и "высота). Каждый ключ связан с массивом значений:

$data = [
    "length" => ["12", "44"],
    "width" => ["22", "45"],
    "height" => ["22", "34"]
];

Как я могу транспонировать столбцы каждый ключ в строки по 3 столбца следующим образом:

$rows = [
    ["length" => "12", "width" => "22", "height" => "22"],
    ["length" => "44", "width" => "45", "height" => "34"]
]; 

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Следующая функция выполнит задание:

function transpose($data)
{
    $result = [];
    $keys = array_keys($data);
    for ($row = 0,  $rows = count(reset($data)); $row < $rows; $row++) {
        foreach ($keys as $key) {
            $result[$row][$key] = $data[$key][$row];
        }
    } 

    return $result;
}

Обратите внимание, что функция является общим решением, оно не зависит ни от имени клавиш, ни от количества записей каждой клавиши.

0 голосов
/ 05 мая 2020

вы можете попробовать это, чтобы получить массивы, как вы сказали

   $height = array(12,44);
$width = array(20,50);
$length = array(30,50);
$new_array[0] = $height[0];
$new_array[1] = $width[0];
$new_array[2] = $length[0];
$new_array2 = $new_array[1];
print_r($new_array);
echo "<br>";
print_r($new_array2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...