Как отфильтровать JSON в php? - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть этот JSON

[
{"name":"Juan","Sex":"Male","ID":"1100"},{"name":"Maria";"Sex":"Female","ID":"2513"},{"name":"Pedro";"Sex":"Male","ID":"2211"}
]

Я хочу получить только те, у кого есть этот идентификатор 2513

[
{"name":"Maria";"Sex":"Female","ID":"2513"}
]

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Ваша строка JSON недействительна .Сначала замените все точки с запятой ; запятой ,, а затем попробуйте использовать array_filter() или любой другой способ, например foreach() с условием if и т. Д. Я использовал array_filter(), надеюсь, это поможет :)

<?php
$json = '[{"name":"Juan","Sex":"Male","ID":"1100"},{"name":"Maria","Sex":"Female","ID":"2513"},{"name":"Pedro","Sex":"Male","ID":"2211"}]';
$array = json_decode($json,1);
$ID = 2513;
$expected = array_filter($array, function ($var) use ($ID) {
    return ($var['ID'] == $ID);
});
print_r($expected);
?>

DEMO: https://3v4l.org/kZrMo

0 голосов
/ 01 декабря 2018

Используйте json_decode() для преобразования JSONString в массив объектов PHP

$str = '[{"name":"Juan","Sex":"Male","ID":"1100"},"name":"Maria";"Sex":"Female","ID":"2513"},{"name":"Pedro";"Sex":"Male","ID":"2211"}]';

$arr = json_decode($str);

foreach ( $arr as $obj ){
    if ( $obj->ID == 2513 ) {
        echo $obj->name;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...