Json. PHP. Получить значение по другому значению

102
10

у меня есть это

{
"items":[
{
"id":463282624,
"original_id":463282624,
"defindex":10175,
"level":1,
"quality":4,
"inventory":2147483980,
"quantity":1,
"attributes":[
{
"defindex":187,
"value":1106771968,
"float_value":31
}
]
},
{
"id":465686099,
"original_id":465686099,
"defindex":10175,
"level":1,
"quality":4,
"inventory":2147483979,
"quantity":1,
"attributes":[
{
"defindex":187,
"value":1106771968,
"float_value":31
}
]
}
]
}

Как я могу вынуть ['id'] элемента с помощью ['defindex'] = 10175

Пожалуйста помоги!

спросил(а) 2021-01-19T17:47:10+03:00 9 месяцев, 1 неделя назад
1
Решение
79

PHP не предоставляет никакого способа извлечения элементов по содержимому, поэтому вам нужно написать цикл:

foreach ($object['items'] as $item) {
if ($item['defindex'] == 10175) {
$id = $item['id'];
break;
}
}

Если вам понадобится сделать это несколько раз, вы должны преобразовать свои данные в ассоциативный массив, который использует defindex в качестве ключа, тогда вы можете легко получить к ним доступ.

$items_by_defindex = array();
foreach ($object['items'] as $item) {
$items_by_defindex[$item['defindex']] = $item;
}

$id = $items_by_defindex[10175];

ответил(а) 2021-01-19T17:47:10+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема