PHP JSON检查值是否存在

时间:2014-11-13 12:04:35

标签: php json

好的,我有一个JSON字符串,如下所示。

{
    "1": [
        "a",
        "ab",
        "ac"
    ],
    "3": [
        "v",
        "aw",
        "ea"
    ],
    "4": [
        "ffg",
        "sd"
    ]
}

我用json_decode($string, true);解码了它现在,我需要找到一种方法来检查,例如a是否存在?如果存在,我想知道其父值的名称(例如1)。键和值并不总是相同,它们会不断变化。任何人都可以提供一个示例代码,我该怎么做?谢谢你提前;)

1 个答案:

答案 0 :(得分:0)

如果我试图将它转换为JSON,那个字符串会给我回null,所以我只是为你建了一个数组。我只是创建一个函数,然后遍历所有关键字。之后,在子数组中,再次循环以检查搜索到的字符串的第一次出现。如果您需要所有结果,那么您可以在数组中使用密钥,然后返回。

//The string we search
$searchString = "aw";

//The array where we search
$array = array(
    "1" => array("a", "ab", "ac"),
    "3" => array("v", "aw", "ea"),
    "4" => array("ffg", "sd")
);


$result = getArrayIndex($array, $searchString);
if (empty($result)) {
    "I did not find your string: " . $searchString;
} else {
    echo "The index of your main array, where  '" . $searchString . "' found is: " . $result;
}

function getArrayIndex($array, $searchString) {
    if (count($array)) {
        foreach (array_keys($array) as $key) {
            if (is_array($array[$key])) {
                foreach ($array[$key] as $item) {
                    if ($item === $searchString) {
                        return $key;
                    }
                }
            }
        }
    }
    return false;
}