Задать вопрос
@thirteen_bit

Есть ли встроенные механизмы для развертывания массива?

чтобы из подобного массива:
$samples = [
    123,
    [1, 2, 3],
    321
];


получить такой:
$samples_modified = [
    123,
    1,
    2,
    3,
    321
];


Разворачивать требуется только массивы, вложенные непосредственно в исходный. Спасибо!
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Простой 9 комментариев
Решения вопроса 1
Fernus
@Fernus
Техник - Механик :)
<?php

$samples = [
    123,
    [1, 2, 3],
    321
];

$samples_modified = [];
array_walk_recursive($samples, function ($item, $key) use (&$samples_modified) {
    $samples_modified[] = $item;    
});

print_r($samples_modified);


UPD:

Вариант с foreach:
<?php

$samples = [
    123,
    [1, 2, 3],
    321
];

$samples_modified = [];

function recursive_func($array){
    
    global $samples_modified; 
    
    if(is_array($array)){
        foreach($array as $below){
            $res = recursive_func($below); 

        }
    }else{
        $samples_modified[] = $array; 
    }
    return $samples_modified; 
}

recursive_func($samples);

print_r($samples_modified);


P.S.: За global помидорами не кидайте...чисто для примера...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы