Have массив как этотИз одномерного массива должен получить многомерный массив на основе ключей
Array
(
[0] => Array
(
[CategoriesName_1] => Happy Birthday
[CategoriesName_2] => Flowers
[CategoriesName_3] => Fruit baskets
[CategoriesDescription_1] =>
[CategoriesDescription_2] =>
[CategoriesDescription_3] => Fruit baskets descr
[CategoriesUrl_1] => happy-birthday
[CategoriesUrl_2] => flowers
[CategoriesUrl_3] => fruit-baskets
)
)
Хотите, чтобы преобразовать его в массив, как это (нужно, чтобы получить этот результат)
Array
(
[0] => Array
(
[CategoriesName] => Happy Birthday
[CategoriesDescription] =>
[CategoriesUrl] => happy-birthday
)
[1] => Array
(
[CategoriesName] => Flowers
[CategoriesDescription] =>
[CategoriesUrl] => flowers
)
[2] => Array
(
[CategoriesName] => Fruit baskets
[CategoriesDescription] => Fruit baskets descr
[CategoriesUrl] => fruit-baskets
)
)
Начальная (одномерная матрица) имеют ключи CategoriesName_1
, CategoriesUrl_1
, CategoriesDescription_1
. Для каждого номера (_1
, _2
, _3
) хотите поместить имя, URL и описание вместе и создать отдельный подмассив.
В первом создал 3 отдельных массивы
foreach ($array_with_breadcrumbs[0] as $key_brcr => $val_brcr) {
if('CategoriesUrl_' == substr($key_brcr,0,14)){
$array_url_brcr[] = array('CategoriesUrl' => $val_brcr);
}
if('CategoriesName_' == substr($key_brcr,0,15)){
$array_name_brcr[] = array('CategoriesName' => $val_brcr);
}
if('CategoriesDescription_' == substr($key_brcr,0,22)){
$array_description_brcr[] = array('CategoriesDescription' => $val_brcr);
}
}//foreach ($array_with_breadcrumbs[0] as $key_brcr => $val_brcr) {
Затем цикл через все три массива, как этот
foreach($array_url_brcr as $i_url => $val_url){
foreach($array_name_brcr as $i_name => $val_name){
foreach($array_description_brcr as $i_description => $val_description){
if($i_url == $i_name) {
$combined_arr_brcr[] = array(
'CategoriesUrl' => $val_url['CategoriesUrl'],
'CategoriesName' => $val_name['CategoriesName'],
'CategoriesDescription' => $val_description['CategoriesDescription']
);
}
}
}
}
Я получаю девять (3 массивов * 3 петли) Подмассивы с не ожидаемыми результатами. Из результатов я должен написать дополнительный код, где я беру (сохраняю) первый, пятый и девятый подмары.
Код выглядит очень длинным. Есть ли лучший (более короткий, более простой) способ получить результат?
Как создать первый массив? –
Первый массив из mysql 2 arr, затем 'array_replace_recursive' – user2118559
Итак, ваша структура базы данных выглядит так: КатегорииName_1, CategoriesName_2, CategoriesName_3 и т. Д.? И вы получаете эти данные с помощью 'SELECT CategoriesName_1, CategoriesName_2, CategoriesName_3, ... FROM table'? –