Перебор многомерного массива с пониманием пути PHP

12
ArbNet
На сайте с 27.10.2019
Offline
125
#11
timo-71 #:
. Может на скрине будет понятней...

Чувак мне плевать чего и зачем надо, я написал целую функцию, а что с значением нужно, путь или ещё чего это под конкретную задачу настраивается.

webinfo1 #:
Как-то так:

Вот же вам человек слизал мою функцию, переименовав(от переименования результат не зависит) её и переменные. Результат такой же Mf($arr,'/') с путём.

Обсуждение разработки на моём фреймворке https://discord.gg/23N4s9x2kp
W1
На сайте с 22.01.2021
Offline
289
#12
ArbNet #:
Вот же вам человек слизал мою функцию

У Вас повышенное ЧСВ, но по факту Вы не можете написать ничего путного. Успокойтесь уже, никто не собирается ничего у Вас лизать.

Мой форум - https://webinfo.guru –Там я всегда на связи
ArbNet
На сайте с 27.10.2019
Offline
125
#13
webinfo1 #:

У Вас повышенное ЧСВ, но по факту Вы не можете написать ничего путного. Успокойтесь уже, никто не собирается ничего у Вас лизать.

Я имел ввиду сам принцип рекурсивной функции. Вы применили его, как первоначально сказал надо сделать я 😀

edogs software
На сайте с 15.12.2005
Offline
775
#14
ArbNet #:

Я имел ввиду сам принцип рекурсивной функции.

Вы реально возмущаетесь что у Вас украли принцип рекурсивной функции?:)
А принцип сложения двух чисел у Вас не крали?:)

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
ArbNet
На сайте с 27.10.2019
Offline
125
#15
edogs software #:

Вы реально возмущаетесь что у Вас украли принцип рекурсивной функции?:)
А принцип сложения двух чисел у Вас не крали?:)

С чего взяли, что возмущаюсь? 😀 Я ответил просто на вопрос поставленный ТС, что нужно использовать принцип рекурсии если есть вложенный массив, а timo-71 стал докапываться к мелочам, путь видите-ли ему ещё нужен, может ТСу он и не нужен вовсе. Вот я и добавил путь. webinfo1 написал такую же по сути рекурсивную функцию.

W1
На сайте с 22.01.2021
Offline
289
#16
ArbNet #:
Вы применили его, как первоначально сказал надо сделать я

Это может быть Вы считаете, что сегодня совершили открытие, а я  так 100500 лет этот принцип знаю.

ArbNet
На сайте с 27.10.2019
Offline
125
#17
webinfo1 #:

Это может быть Вы считаете, что сегодня совершили открытие, а я  так 100500 лет этот принцип знаю.

Молодец 😎

S
На сайте с 13.10.2014
Offline
171
#18

Люблю я такие задачки. Они не позволяют мозгу ржаветь

$arr = [
        'path'          => ['file1.jpg','file2.jpg','file3.jpg'],
        'another_path'  => ['file11.jpg','file12.jpg','file13.jpg'],
        'another_path2' => ['file21.jpg','file22.jpg','file23.jpg'],
        'subpath'       => [
                'subpath2'      => ['file_a.jpg','file_b.jpg','file_c.jpg'],
                'file_x1.jpg'
        ]
];

function get_arr_reciursive($arr, $pathList=[])
{
        $rd = [];

        foreach($arr as $key=>$value)
        {
                $path   = $pathList;    
                
                // если это файл
                if (is_integer($key) && !is_array($value)){
                        $path[] = $value;
                        $rd[] = $path;  
                }
                
                // если это вложенный элемент массива
                if (!is_integer($key) && is_array($value)){
                        $path[] = $key;
                        $rd = array_merge_recursive($rd, get_arr_reciursive($value, $path ));
                }
        }
        
        return  $rd;                    
}

$files = get_arr_reciursive($arr);
foreach($files as $file){
        print implode('/',$file)."<br/> \r\n";
}

в этом примере есть одно ограничение. ключ папки с файлом не должен быть типа integer

на выходе будет что-то вроде

path/file1.jpg
path/file2.jpg
path/file3.jpg
another_path/file11.jpg
another_path/file12.jpg
another_path/file13.jpg
another_path2/file21.jpg
another_path2/file22.jpg
another_path2/file23.jpg
subpath/subpath2/file_a.jpg
subpath/subpath2/file_b.jpg
subpath/subpath2/file_c.jpg
subpath/file_x1.jpg
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий