Здравствуйте, у меня есть вложенные массивы:
Array
(
[0] => Array
(
[id] => 1
[title_ru] => Сиделка
[description_ru] => Уход за пожилыми людьми, помощь больным и не самостоятельным
[meta_desc_ru] => Уход за пожилыми людьми, помощь больным и не самостоятельным
[meta_key_ru] =>
[title_en] => Nurse
[description_en] => Care for the elderly, the sick and not an independent
[meta_desc_en] => Care for the elderly, the sick and not an independent
[meta_key_en] =>
[title_it] => Badante
[description_it] => La cura per gli anziani, i malati e non indipendente
[meta_desc_it] => La cura per gli anziani, i malati e non indipendente
[meta_key_it] =>
)
[1] => Array
(
[id] => 2
[title_ru] => Уборки
[description_ru] => Уборки домов, уборка квартир и офисов, уборка в подъезде
[meta_desc_ru] => Уборки домов, уборка квартир и офисов, уборка в подъезде
[meta_key_ru] => Уборки домов, уборка квартир и офисов, уборка в подъезде
[title_en] => Cleaning
[description_en] => Cleaning houses, cleaning offices and apartments, cleaning in the stairwell
[meta_desc_en] => Cleaning houses, cleaning offices and apartments, cleaning in the stairwell
[meta_key_en] => Cleaning houses, cleaning offices and apartments, cleaning in the stairwell
[title_it] => Pulizia
[description_it] => Pulizia di uffici e appartamenti di pulizia, la pulizia nella tromba delle scale
[meta_desc_it] => Pulizia di uffici e appartamenti di pulizia, la pulizia nella tromba delle scale
[meta_key_it] => Pulizia di uffici e appartamenti di pulizia, la pulizia nella tromba delle scale
)
[2] => Array
(
[id] => 3
[title_ru] => Недвижимость
[description_ru] => Объявления по недвижимости, продажа квартир, съем или сдача квартир, комнат. Тут, вы быстро найдете себе крышу над головой!
[meta_desc_ru] => Объявления по недвижимости, продажа квартир, съем или сдача квартир, комнат. Тут, вы быстро найдете себе крышу над головой!
[meta_key_ru] => продажа квартир, съем или сдача квартир, съем или сдача комнаты
[title_en] => The property
[description_en] => Classifieds real estate, apartments for sale, renting or renting apartments, rooms. Here, you will quickly find yourself a roof over his head!
[meta_desc_en] => Classifieds real estate, apartments for sale, renting or renting apartments, rooms. Here, you will quickly find yourself a roof over his head!
[meta_key_en] => apartments for sale, renting or renting apartments
[title_it] => Immobili
[description_it] => Annunci immobiliari, appartamenti in vendita, noleggio o affitto di appartamenti, camere. Qui, si rapidamente trovare te stesso un tetto sopra la testa!
[meta_desc_it] => Annunci immobiliari, appartamenti in vendita, noleggio o affitto di appartamenti, camere. Qui, si rapidamente trovare te stesso un tetto sopra la testa!
[meta_key_it] => appartamenti in vendita, noleggio o affitto di appartamenti, camere
)
)
но я хочу перезаписать его чтоб он был в таком виде:
Array
(
[0] => Array
(
[id] => 1
[title_ru] => Сиделка
[description_ru] => Уход за пожилыми людьми, помощь больным и не самостоятельным
[meta_desc_ru] => Уход за пожилыми людьми, помощь больным и не самостоятельным
[meta_key_ru] =>
)
[1] => Array
(
[id] => 2
[title_ru] => Уборки
[description_ru] => Уборки домов, уборка квартир и офисов, уборка в подъезде
[meta_desc_ru] => Уборки домов, уборка квартир и офисов, уборка в подъезде
[meta_key_ru] => Уборки домов, уборка квартир и офисов, уборка в подъезде
)
[2] => Array
(
[id] => 3
[title_ru] => Недвижимость
[description_ru] => Объявления по недвижимости, продажа квартир, съем или сдача квартир, комнат. Тут, вы быстро найдете себе крышу над головой!
[meta_desc_ru] => Объявления по недвижимости, продажа квартир, съем или сдача квартир, комнат. Тут, вы быстро найдете себе крышу над головой!
[meta_key_ru] => продажа квартир, съем или сдача квартир, съем или сдача комнаты
)
)
не могу понять как, потому что тут 3 массива, не понимаю как правильно составить цикл
Вы можете использовать простой цикл по элементами массива, а результаты следует добавлять в новый массив ($data
- ваш исходный массив)
$result = [];
foreach($data as $d){
$result[] = [
'id' => $d['id'],
'title_ru' => $d['title_ru'],
'description_ru' => $d['description_ru'],
'meta_desc_ru' => $d['meta_desc_ru'],
'meta_key_ru' => $d['meta_key_ru']
];
}
Также вы можете использовать функциюю array_map()
$result = array_map(function($d){
return [
'id' => $d['id'],
'title_ru' => $d['title_ru'],
'description_ru' => $d['description_ru'],
'meta_desc_ru' => $d['meta_desc_ru'],
'meta_key_ru' => $d['meta_key_ru']
];
}, $data);
Также возможен и подход, когда вы простой пройдетесь по исходному массиву,а также его вложенным элемента, и удалите ненужное с помощью unset()
, а также прочие вариации.
Например так:
$original = [/* ... */];
$filtered = [];
foreach ($original as $block_key => $block) {
$filtered[$block_key] = array_filter($block, function ($key) {
return ($key === 'id') || preg_match('/_ru$/', $key);
}, ARRAY_FILTER_USE_KEY);
}
var_dump($filtered);
А вот и рабочий пример на IDEOne.
Спасибо всем кто откликнулся, пока ждал ответа, я вышел на улицу освежил кипящий мозг. Когда вернулся и прочитал ваши ответы, и тут отдельное спасибо teran'у, он натолкну меня на вариант который мне полностью подошел!
foreach($row as $key => $value) {
$result[$key] = array(
'id' => $value['id'],
'title' => $value['title_'.$_SESSION['lang']],
'description' => $value['description_'.$_SESSION['lang']],
'meta_desc' => $value['meta_desc_'.$_SESSION['lang']],
'meta_key' => $value['meta_key_'.$_SESSION['lang']]
);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
С помощью CRUD с генерировал GridView на индексной странице