Чтобы преобразовать многомерный массив в один массив в PHP, вы можете использовать несколько подходов. Вот несколько методов с примерами кода:
Метод 1: Рекурсивная функция
function flattenArray($array) {
$result = array();
foreach ($array as $element) {
if (is_array($element)) {
$result = array_merge($result, flattenArray($element));
} else {
$result[] = $element;
}
}
return $result;
}
$multiDimensionalArray = array(
array(1, 2, 3),
array(4, array(5, 6)),
array(array(7), 8, 9)
);
$singleArray = flattenArray($multiDimensionalArray);
print_r($singleArray);
Метод 2: Рекурсивный итератор
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($multiDimensionalArray));
$singleArray = iterator_to_array($iterator, false);
print_r($singleArray);
Метод 3. Функции массива
$singleArray = array();
array_walk_recursive($multiDimensionalArray, function($value) use (&$singleArray) {
$singleArray[] = $value;
});
print_r($singleArray);
Метод 4. Кодирование и декодирование JSON
$json = json_encode($multiDimensionalArray);
$singleArray = json_decode($json, true);
print_r($singleArray);
Метод 5: использование array_reduce
$singleArray = array_reduce($multiDimensionalArray, 'array_merge', array());
print_r($singleArray);