Я хотел бы извлечь данные из глубоко вложенных массивов. Мне нужна функция, которая вернет некоторую часть массива, соответствующую некоторым критериям. Мне нужны данные, которые находятся в подмассиве 'i' => 'p'
Учитывая вложенный массив ниже:
[
'a' => [
'i' => [
'p' => [
'v' => [
'age' => 10,
'name' => 'John',
'city' => 'Seattle'
],
'l' => [
'referee' => 'Jane Smith'
],
'm' => [
'referee' => 'Jane Smith'
],
]
]
],
'b' => [
'i' => [
'p' => [
'sibling' => 'Peter'
]
],
],
'c' => [
'i' => [
'p' => [
'material' => [
'i' => [
'p' => [
'marketId' => [
'title' => 'marketplaceId'
],
'color' => [
'i' => [
'p' => [
'value' => [
'title' => 'Mr',
"type" => "string"
],
'language' => 'C++'
]
]
],
],
]
]
]
],
],
'd' => [
'i' => [
'p' => [
'schedule' => [
'i' => [
'p' => [
'value' => [
'title' => 'your value',
'description' => 'your description'
]
]
]
]
]
]
],
'e' => [
'i' => [
'p' => [
'value' => [
'title' => 'your value',
'description' => 'your description'
],
'language' => [],
'marketplace' => []
]
],
]
]
Я ищу что-то вроде:
Array(
a => Array(
'v' => [
'age' => 10,
'name' => 'John',
'city' => 'Seattle'
],
'l' => [
'referee' => 'Jane Smith'
],
'm' => [
'referee' => 'Jane Smith'
],
b =>
[
'sibling' => 'Peter'
]
c =>
material => [
'marketId' => [
'title' => 'marketplaceId'
],
'color' => [
'i' => [
'p' => [
'value' => [
'title' => 'Mr',
"type" => "string"
],
'language' => 'C++'
]
]
],
],
d => schedule
=> [
'value' => [
'title' => 'your value',
'description' => 'your description'
]
]
e => [
'value' => [
'title' => 'your value',
'description' => 'your description'
],
'language' => [],
'marketplace' => []
]
)
)
Я попробовал эту функцию:
function getIPData($array, $prefix = '') {
$return = [];
foreach ($array as $key => $value) {
if (!empty($value['i']['p'])) {
$return = array_merge($return, getIPData($value['i']['p'], $prefix . $key . '_'));
} else {
echo "Prefix: $prefix Key: $key \n";
$return[$prefix . $key] = $value;
}
}
return $return;
}
но он дает следующий массив:
Array
(
[a_v] => Array
(
[age] => 10
[name] => John
[city] => Seattle
)
[a_l] => Array
(
[referee] => Jane Smith
)
[a_m] => Array
(
[referee] => Jane Smith
)
[b_sibling] => Peter
[c_material_marketId] => Array
(
[title] => marketplaceId
)
[c_material_color_value] => Array
(
[title] => Mr
[type] => string
)
[c_material_color_language] => C++
[d_schedule_value] => Array
(
[title] => your value
[description] => your description
)
[e_value] => Array
(
[title] => your value
[description] => your description
)
[e_language] => Array
(
)
[e_marketplace] => Array
(
)
)
Подробнее здесь: https://stackoverflow.com/questions/793 ... ray-in-php
Получение данных подмассива из глубоко вложенного массива в PHP ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1735396843
Anonymous
Я хотел бы извлечь данные из глубоко вложенных массивов. Мне нужна функция, которая вернет некоторую часть массива, соответствующую некоторым критериям. Мне нужны данные, которые находятся в подмассиве 'i' => 'p'
Учитывая вложенный массив ниже:
[
'a' => [
'i' => [
'p' => [
'v' => [
'age' => 10,
'name' => 'John',
'city' => 'Seattle'
],
'l' => [
'referee' => 'Jane Smith'
],
'm' => [
'referee' => 'Jane Smith'
],
]
]
],
'b' => [
'i' => [
'p' => [
'sibling' => 'Peter'
]
],
],
'c' => [
'i' => [
'p' => [
'material' => [
'i' => [
'p' => [
'marketId' => [
'title' => 'marketplaceId'
],
'color' => [
'i' => [
'p' => [
'value' => [
'title' => 'Mr',
"type" => "string"
],
'language' => 'C++'
]
]
],
],
]
]
]
],
],
'd' => [
'i' => [
'p' => [
'schedule' => [
'i' => [
'p' => [
'value' => [
'title' => 'your value',
'description' => 'your description'
]
]
]
]
]
]
],
'e' => [
'i' => [
'p' => [
'value' => [
'title' => 'your value',
'description' => 'your description'
],
'language' => [],
'marketplace' => []
]
],
]
]
Я ищу что-то вроде:
Array(
a => Array(
'v' => [
'age' => 10,
'name' => 'John',
'city' => 'Seattle'
],
'l' => [
'referee' => 'Jane Smith'
],
'm' => [
'referee' => 'Jane Smith'
],
b =>
[
'sibling' => 'Peter'
]
c =>
material => [
'marketId' => [
'title' => 'marketplaceId'
],
'color' => [
'i' => [
'p' => [
'value' => [
'title' => 'Mr',
"type" => "string"
],
'language' => 'C++'
]
]
],
],
d => schedule
=> [
'value' => [
'title' => 'your value',
'description' => 'your description'
]
]
e => [
'value' => [
'title' => 'your value',
'description' => 'your description'
],
'language' => [],
'marketplace' => []
]
)
)
Я попробовал эту функцию:
function getIPData($array, $prefix = '') {
$return = [];
foreach ($array as $key => $value) {
if (!empty($value['i']['p'])) {
$return = array_merge($return, getIPData($value['i']['p'], $prefix . $key . '_'));
} else {
echo "Prefix: $prefix Key: $key \n";
$return[$prefix . $key] = $value;
}
}
return $return;
}
но он дает следующий массив:
Array
(
[a_v] => Array
(
[age] => 10
[name] => John
[city] => Seattle
)
[a_l] => Array
(
[referee] => Jane Smith
)
[a_m] => Array
(
[referee] => Jane Smith
)
[b_sibling] => Peter
[c_material_marketId] => Array
(
[title] => marketplaceId
)
[c_material_color_value] => Array
(
[title] => Mr
[type] => string
)
[c_material_color_language] => C++
[d_schedule_value] => Array
(
[title] => your value
[description] => your description
)
[e_value] => Array
(
[title] => your value
[description] => your description
)
[e_language] => Array
(
)
[e_marketplace] => Array
(
)
)
Подробнее здесь: [url]https://stackoverflow.com/questions/79313856/getting-subarray-data-from-a-deeply-nested-array-in-php[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия