2014-11-13 4 views
-1

Итак, у меня строка JSON выглядит так.PHP JSON Проверьте, существует ли значение

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

Я декодирую его json_decode($string, true); Теперь, мне нужно найти способ, чтобы проверить, например, a существует? Если он существует, я хочу узнать имя его родительского значения (например, 1). Клавиши и значения не всегда одинаковы, они будут меняться. Может ли кто-нибудь предоставить мне пример кода, как я могу это сделать? Спасибо в advanced;)

+0

Что вы пробовали Джереми? –

+0

@CSGO Я ничего не пробовал, потому что я понятия не имею, lol – Jeremy

ответ

0

Эта строка возвращает мне null, если я попытался преобразовать ее в JSON, так что я только что создал массив для вас, например. Я только что создал функцию и прохожу через все ключи. После этого в дополнительном массиве снова проведите цикл, чтобы проверить первое появление искомой строки. Если вам нужны все результаты, вы можете разбить ключи в массиве и вернуться с этим.

//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; 
} 
+0

От '$ array [$ key] как $ item'. Но, как я сожалею, ваша строка json недействительна. – vaso123

+0

Я построил некоторую защиту. Но если вы точно выполняете мой код (с помощью строки поиска и с моим массивом, это должно сработать! – vaso123

+0

Я редактировал мой JSON. Я написал его, но не копировал и не вставлял, но строка JSON выглядела так. – Jeremy

Смежные вопросы