объединение ассоциативных массивов и добавление пропущенных столбцов с значениями по умолчанию
объединение нескольких ассоциативных массивов при сохранении всех уникальных ключей и добавления недостающих столбцов со значениями по умолчанию может быть достигнуто с помощью различных методов. Давайте рассмотрим два метода, чтобы выполнить это:
Метод 1: Использование array_merge и recurisiveTerationiterator
$a = array('a' => 'some value', 'b' => 'some value', 'c' => 'some value');
$b = array('a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value');
$c = array('b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value');
$d = array($a, $b, $c);
$keys = array();
foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) {
$keys[$key] = '';
}
$data = array();
foreach ($d as $values) {
$data[] = array_merge($keys, $values);
}
echo '';
print_r($data);
] Этот подход сначала использует рекурсивейтерторитер в сочетании с array_merge для определения всех уникальных ключей в каждом ассоциативном массиве. Затем он инициализирует пустой массив ($ Keys) с идентифицированными клавишами. Впоследствии он итерация проходит через каждый массив в $ d, объединяя массив $ Keys со значениями каждого массива, чтобы получить желаемый формат.
Метод 2: Использование Array_combine и Array_map
$keys = array_keys(call_user_func_array('array_merge', $d));
$key_pair = array_combine($keys, array_fill(0, count($keys), null));
$values = array_map(function ($e) use ($key_pair) {
return array_merge($key_pair, $e);
}, $d);
В этом подхода используется array_keys для определения союза всех уникальных ключей в объединенном массиве. Затем он использует array_combine для создания пары клавиш, где клавиши являются уникальными клавишами, а значения являются нулевыми. Наконец, array_map используется для итерации через $ d, объединяя пару ключевых значений ($ key_pair) с каждым ассоциативным массивом в $ d, что приводит к желаемому формату.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3