2010-01-13 4 views
0

je un tableau énorme d'un résultat json_decode (assoc valeur true) et avoir le code ci-dessous pour vérifier si (l'un des tableaux dans une série aléatoire) a la touche « set_true »PHP: tableau de grande profondeur, comment retourner le nom de la clé actuelle?

$out = ""; 
foreach ($array as $sub) { 
    //$out[] = $sub['set_true']; 
    if (in_array($sub['set_true'], $sub) && $sub['set_true'] == '1') { 
    $out[] = 'User: ' . $sub . ' has set_true = 1'; 
    } 
} 

Ce Le code liste tous les utilisateurs avec cette clé de tableau définie sur 1, mais $ sub renvoie 'array' et non la clé actuelle sur laquelle je suis! (le numéro de série aléatoire)

Comment le renvoyer?

Répondre

2

Si vous Boucler dans un tableau avec foreach, et que vous voulez connaître la clé que vous êtes actuellement dans la boucle, vous pouvez utiliser cette syntaxe:

foreach ($array as $key => $value) { 
    // $key contains the name of the current key 
    // and $value the current value 
} 
0

Quoi de neuf avec votre appel in_array? Je ne pense pas que ce soit correct. Pourquoi recherchez-vous $sub dans $sub?

0

Je pense que vous voulez dire:

$out = ""; 
foreach ($array as $key => $sub) { 
    if (array_key_exists('set_true', $sub) && $sub['set_true'] == '1') { 
    $out[] = 'User: ' . $key . ' has set_true = 1'; 
    } 
} 
Questions connexes