0

OK、この JSON の例があるとしましょう

{
    "result": [
        {
            "id": 1,
            "title": "Random Title 1",
            "description": "Random Description 1"
        },
        {
            "id": 4,
            "title": "Random Title 2",
            "description": "Random Description 2"
        },
        {
            "id": 10,
            "title": "Random Title 3",
            "description": "Random Description 3"
        }
    ]
}

ID の間隔が空いていることに気付きましたか? なので、第2弾の「ランダムタイトル2」を手に入れたいと思ったらそうでもないんです[4]けどね[2]。JSON ファイルを編集しているため、JSON の「ID」の一部がスキップされています...とにかく、id.. 各 JSON 要素には異なる ID があります。

これが私が今していることです:

$string = file_get_contents("achievements.json");
$json_a=json_decode($string,true);

$getID = $ID_number;

$getit = $json_a['testJSON'][$getID]['title'];

今、私は持って$ID_numberいますが、それは配列番号と同じではありません。上記は間違っています...どうすれば修正できるので、検索しますid

4

2 に答える 2

1
foreach ($json_a['tstJSON'] as $element) {
    if ($element['id'] == $getID) {
        $getit = $element['title'];
    }
}
于 2013-01-13T21:38:15.077 に答える
1

これが私の答えです:

<?php

$json = <<<EOF
{
    "result": [
        {
            "id": 1,
            "title": "Random Title 1",
            "description": "Random Description 1"
        },
        {
            "id": 4,
            "title": "Random Title 2",
            "description": "Random Description 2"
        },
        {
            "id": 10,
            "title": "Random Title 3",
            "description": "Random Description 3"
        }
    ]
}
EOF;

$arr = json_decode($json,true);
$res = $arr['result'];

function search_by_key_and_value($array, $key, $value)
{
    $results = array();

    if (is_array($array))
    {
        if (isset($array[$key]) && $array[$key] == $value)
            $results[] = $array;

        foreach ($array as $subarray)
            $results = array_merge($results, search_by_key_and_value($subarray, $key, $value));
    }

    return $results;
}

print("<pre>");
print_r($res);
print("</pre>");

print("<hr />");
$result = search_by_key_and_value($res,"id",4);

print("<pre>");
print_r($result);
print("</pre>");

?>

これがあなたが必要とするものであることを願っています

于 2013-01-13T21:41:00.023 に答える