好的,我有一个JSON字符串,如下所示。
{
"1": [
"a",
"ab",
"ac"
],
"3": [
"v",
"aw",
"ea"
],
"4": [
"ffg",
"sd"
]
}
我用json_decode($string, true);
解码了它现在,我需要找到一种方法来检查,例如a
是否存在?如果存在,我想知道其父值的名称(例如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;
}