«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как транспонировать столбчатую структуру данных в строковый формат в PHP?

Как транспонировать столбчатую структуру данных в строковый формат в PHP?

Опубликовано 8 ноября 2024 г.
Просматривать:581

How to Transpose a Columnar Data Structure into Row-based Format in PHP?

Переупорядочение многомерных столбцовых данных в структуру на основе строк

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

Исходный массив:

$where = [
    'id' => [
        12,
        13,
        14
    ],
    'date' => [
        '1999-06-12',
        '2000-03-21',
        '2006-09-31'
    ]
];

Желаемый результат:

$comb = [
    [12, '1999-06-12'],
    [13, '2000-03-21'],
    [14, '2006-09-31']
];

Решение:

Один эффективный способ добиться такой реструктуризации данных — перебрать значения каждого столбца с помощью цикла и объединить их в массив для каждого ряд. Вот пример:

$result = [];

foreach ($where['id'] as $key => $id) {
    $result[] = [$id, $where['date'][$key]];
}

array_column() Подход:

Элегантной альтернативой решению на основе цикла является использование функции array_column(), которая извлекает определенный столбец из многомерного массива. array.

$result = [];

foreach ($where['id'] as $key => $id) {
    $result[] = array_column($where, $key);
}

Функция array_column() возвращает указанный столбец в виде массива, который затем можно объединить со значениями из соответствующей строки.

Вывод:

Оба решения дадут желаемый результат:

[
    [12, '1999-06-12'],
    [13, '2000-03-21'],
    [14, '2006-09-31']
]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3