Position actuelle: Accueil> Derniers articles> array_key_exists Les array_key_exists peuvent-ils vérifier les clés dans les tableaux multidimensionnels? Comment l'utiliser spécifiquement?

array_key_exists Les array_key_exists peuvent-ils vérifier les clés dans les tableaux multidimensionnels? Comment l'utiliser spécifiquement?

gitbox 2025-09-12
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// --------------------</span></span><span>
</span><span><span class="hljs-comment">// Ce n&#39;est pas lié au contenu de l&#39;article PHP Exemple de code</span></span><span>
</span><span><span class="hljs-variable">$dummyArray</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$dummyArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span> * </span><span><span class="hljs-number">2</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span><span><span class="hljs-comment">// --------------------</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>

---

</span><span><span class="hljs-comment"># array_key_exists Puis-je vérifier les clés dans un tableau multidimensionnel??Comment l&#39;utiliser spécifiquement?</span></span><span>

exister PHP milieu,`array_key_exists` 函数用于检查一个数组milieu是否存exister指定的clé。Son utilisation fondamentale est la suivante:

```php
</span><span><span class="hljs-variable">$array</span></span><span> = [
    </span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Alice'</span></span><span>,
    </span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-number">25</span></span><span>
];

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-string">'name'</span></span><span>, </span><span><span class="hljs-variable">$array</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"clé 'name' 存exister"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"clé 'name' 不存exister"</span></span><span>;
}
</span></span>

Résultats en cours:

 <span><span>clé </span><span><span class="hljs-string">'name'</span></span><span> 存exister
</span></span>

1. Array_key_exists et tableaux multidimensionnels

Il convient de noter que Array_Key_Exists ne peut vérifier que les clés au niveau actuel du tableau , et il ne vérifiera pas automatiquement les clés imbriquées dans les réseaux multidimensionnels. Par exemple:

 <span><span><span class="hljs-variable">$multiArray</span></span><span> = [
    </span><span><span class="hljs-string">'user'</span></span><span> =&gt; [
        </span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Bob'</span></span><span>,
        </span><span><span class="hljs-string">'email'</span></span><span> =&gt; </span><span><span class="hljs-string">'[email protected]'</span></span><span>
    ]
];

</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-string">'user'</span></span><span>, </span><span><span class="hljs-variable">$multiArray</span></span><span>));        </span><span><span class="hljs-comment">// true</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-string">'name'</span></span><span>, </span><span><span class="hljs-variable">$multiArray</span></span><span>));        </span><span><span class="hljs-comment">// false</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-string">'name'</span></span><span>, </span><span><span class="hljs-variable">$multiArray</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>])); </span><span><span class="hljs-comment">// true</span></span><span>
</span></span>

L'exemple ci-dessus illustre:

  1. «Utilisateur» est la clé de niveau supérieur de $ Multiarray , donc la vérification des rendements True .

  2. «Nom» n'est pas la clé de niveau supérieur de $ multiaire , donc la vérification directement renvoie False .

  3. Si vous souhaitez vérifier la touche 'name' dans un tableau imbriqué, vous devez d'abord accéder à $ multiaire ['utilisateur'] , puis à appeler array_key_exists .

2. Méthodes pour vérifier les clés dans les tableaux multidimensionnels

Si vous souhaitez vérifier récursivement si une clé existe dans un tableau multidimensionnel, vous pouvez écrire une fonction d'assistance vous-même:

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">array_key_exists_recursive</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$key</span></span></span><span>, </span><span><span class="hljs-variable">$array</span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$array</span></span><span>)) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
    }

    </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$array</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>) {
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>) &amp;&amp; </span><span><span class="hljs-title function_ invoke__">array_key_exists_recursive</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$value</span></span><span>)) {
            </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
        }
    }

    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
}

</span><span><span class="hljs-comment">// Exemple</span></span><span>
</span><span><span class="hljs-variable">$multiArray</span></span><span> = [
    </span><span><span class="hljs-string">'user'</span></span><span> =&gt; [
        </span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Bob'</span></span><span>,
        </span><span><span class="hljs-string">'email'</span></span><span> =&gt; </span><span><span class="hljs-string">'[email protected]'</span></span><span>
    ],
    </span><span><span class="hljs-string">'settings'</span></span><span> =&gt; [
        </span><span><span class="hljs-string">'theme'</span></span><span> =&gt; </span><span><span class="hljs-string">'dark'</span></span><span>
    ]
];

</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_key_exists_recursive</span></span><span>(</span><span><span class="hljs-string">'email'</span></span><span>, </span><span><span class="hljs-variable">$multiArray</span></span><span>)); </span><span><span class="hljs-comment">// true</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_key_exists_recursive</span></span><span>(</span><span><span class="hljs-string">'theme'</span></span><span>, </span><span><span class="hljs-variable">$multiArray</span></span><span>)); </span><span><span class="hljs-comment">// true</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_key_exists_recursive</span></span><span>(</span><span><span class="hljs-string">'age'</span></span><span>, </span><span><span class="hljs-variable">$multiArray</span></span><span>));   </span><span><span class="hljs-comment">// false</span></span><span>
</span></span>

Cette fonction iratera sur chaque couche dans le tableau et renvoie True si la clé spécifiée est trouvée, sinon il reviendra finalement faux .

3. Résumé

  1. array_key_exists ne vérifiez que les clés au niveau actuel du tableau par défaut.

  2. Les clés imbriquées dans les tableaux multidimensionnels doivent d'abord accéder au sous-réseau correspondant ou utiliser des fonctions récursives.

  3. Utilisez des méthodes récursives pour vérifier facilement si une clé existe dans un tableau multicouche, qui est très adapté pour configurer des tableaux ou des structures de données complexes.

Avec cette approche, vous pouvez gérer la vérification des clés dans des tableaux multidimensionnels de manière plus flexible sans être troublé par les limites de Array_key_exists .

 <span></span>