2016-12-01 2 views
-1
Array : [{"ID":1},{"ID":2}] 

$id=1; 

Я хочу проверить, существует ли в массиве $id.PHP check variable if существует в массиве json

Спасибо!

+0

проверка 'json_decode ($ строка, TRUE);' http://php.net/manual/en/function.json-decode.php – jitendrapurohit

+0

json_decode нужна строка, здесь у меня есть массив –

+0

перебирать массив используя для цикла и использовать значение в качестве параметра для json_decode – jitendrapurohit

ответ

0

У вас есть форматированный json массив, и вам нужно его декодировать, используя сначала json_decode. После этого цикла массив проверит требуемый идентификатор.

Так что код должен выглядеть следующим образом:

$json = '[{"ID":1},{"ID":2}]'; 
$id = 1; 

$data = json_decode($json, true); 
foreach($data as $item){ 
    if($item['id'] == $id) { 
     echo 'it exists'; 
    } 
} 
+0

json_decode90 ожидает, что параметр 1 будет строкой, заданный массив –

0

Iterate массив, используя цикл и использовать значение как пары к json_decode.

$id = 1; 
$arr = array('{"ID":1}', '{"ID":2}'); 
foreach($arr as $val) { 
    if (in_array($id, json_decode($val, TRUE))) { 
    echo "id present"; 
    } 
} 
2

Вы можете попробовать Collection::contains метод Laravel, например:

$collection = collect(json_decode($jsonString, true)); 

if ($collection->contains(1) { 
    // Exists... 
} 

Кроме того, вы можете использовать пару ключей/значение, как это:

if ($collection->contains('ID', 1) { 
    //... 
} 

Кроме того, если вы хотите получить этот предмет из коллекции, то вы можете попробовать where вот так:

$id = $collection->where('ID', 1)->first(); // ['ID' => 1] 
0

Попробуйте это, если значение существует, то он даст ключ массива

$jsondata = '[{"ID":1},{"ID":2}]'; 
$array = json_decode($jsondata,true); 

$key = array_search(1, array_column($array, 'ID')); 
0

Просто проверить, если строка в массиве JSON, с небольшим количеством вычислений.

Я думаю, что это более эффективный способ. Проверьте результат here.

<?php 
$id = 1; 
$array = ['{"ID":1}', '{"ID":2}']; 
echo in_array(json_encode(["ID" => $id]), $array) ? 'Yes' : 'No'; 
Смежные вопросы