Я создаю массив из CSV-файла, это было самое простое, но самое сложное заключается в том, что мне нужно создать еще один массив из первого массива, группируя результаты на основе одного значения ключа. , проблема в том, что это значение не является ни массивом, ни простой строкой...
Это образец из массива CSV-файла
Код: Выделить всё
[0] => Array
(
[key_1] => FOO
[cats] => /30/
[key_2] => FTU-1
)
[1] => Array
(
[key_1] => FOO
[cats] => /30/
[key_2] => FTU-2
)
[2] => Array
(
[key_1] => FOO
[cats] => /30/10/
[key_2] => FTU-3
)
[3] => Array
(
[key_1] => FOO
[cats] => /15/
[key_2] => FTU-4
)
[4] => Array
(
[key_1] => FOO
[cats] => /10/
[key_2] => FTU-5
)
[0] => Array
(
[key_1] => FOO
[cats] => /15/
[key_2] => FTU-6
)
Код: Выделить всё
[30] => Array
(
[0] => Array
(
[key_1] => FOO
[cats] => /30/
[key_2] => FTU-1
)
[1] => Array
(
[key_1] => FOO
[cats] => /30/
[key_2] => FTU-2
)
[1] => Array
(
[key_1] => FOO
[cats] => /30/10/
[key_2] => FTU-3
)
[15] => Array
(
[0] => Array
(
[key_1] => FOO
[cats] => /15/
[key_2] => FTU-4
)
[1] => Array
(
[key_1] => FOO
[cats] => /15/
[key_2] => FTU-6
)
[10] => Array
(
[0] => Array
(
[key_1] => FOO
[cats] => /30/10/
[key_2] => FTU-3
)
[1] => Array
(
[key_1] => FOO
[cats] => /10/
[key_2] => FTU-5
)
Обновление: кажется, я только что решил эту проблему...
Код: Выделить всё
foreach($firstarr as $k => $v) {
$cats = array_filter(explode('/', $v['cats']));
foreach($cats as $ks=>$vs) {
if(stripos($v['cats'], $vs)){
$pp[$vs][] = $v;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/372 ... ouped-suba
Мобильная версия