2016-12-01 29 views
-1

$idが配列に存在するかどうかをチェックしたいと思います。jsonの配列にPHPチェック変数が存在する場合

ありがとうございました!

+0

チェック 'json_decode($文字列、TRUE);' http://php.net/manual/en/function.json-decode.php – jitendrapurohit

+0

json_decodeは、文字列を必要とし、ここで私は、配列 –

+0

を持つ配列を反復forループを使用し、その値をjson_decodeのパラメータとして使用します。 – jitendrapurohit

答えて

0

あなたはjsonでフォーマットされた配列を持っていますので、最初にjson_decodeを使ってデコードする必要があります。その後、配列をループして、必要なIDを確認します。

$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

反復配列がforループを使用してjson_decodeへのparamとして値を使用します。

ように、コードは次のようになります。

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

次の例のように、LaravelのCollection::contains方法を試してください:

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

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

をまた、あなたはこのように、キー/値のペアを使用することがあります。

if ($collection->contains('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'; 
関連する問題