Есть такой массив
Array
(
[0] => Array
(
[content] => 12
[id] => tab-about-1
[name] => Описание 1
)
[1] => Array
(
[content] => 13
[id] => tab-about-2
[name] => Описание 2
)
[2] => Array
(
[content] => 14
[id] => tab-service
[name] => Описание 3
)
[3] => Array
(
[content] => 15
[id] => tab-service-1
[name] => Описание 4
)
)
Как преобразовать его в такой вид:
Array
(
[about] => Array
(
[0] => Array
(
[content] => 12
[id] => tab-about-1
[name] => Описание 1
)
[1] => Array
(
[content] => 13
[id] => tab-about-2
[name] => Описание 2
)
)
[service] => Array
(
[0] => Array
(
[content] => 14
[id] => tab-service
[name] => Описание 3
)
[1] => Array
(
[content] => 15
[id] => tab-service-1
[name] => Описание 4
)
)
)
Как понимаю, нужно отфильтровать все с использованием регулярного выражения?
Как понимаю, нужно отфильтровать все с использованием регулярного выражения?
примерно так, да.
$result = [];
foreach($data as $d){
preg_match('/tab-([^-]*)/', $d['id'], $matches);
$key = $matches[1];
if(!array_key_exists($key, $result)) $result[$key] = [];
$result[$key][] = $d;
}
print_r($result);
Можно обойтись без регулярного выражения, например так:
$result = [];
foreach ($data as $row) {
[, $id] = explode('-', $row['id']);
if ($id) {
$result[$id][] = $row;
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Уважаемые специалисты помогите с вопросомНа сайте есть форма регистрации, в качестве логина указывается E-mail, после заполнения полей формы...