Aktueller Standort: Startseite> Neueste Artikel> Array_key_exists können Array_key_exists die Schlüssel in mehrdimensionalen Arrays überprüfen? Wie benutze ich es speziell?

Array_key_exists können Array_key_exists die Schlüssel in mehrdimensionalen Arrays überprüfen? Wie benutze ich es speziell?

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">// Dies hängt nicht mit dem Inhalt des Artikels zusammen PHP Codebeispiel</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 Kann ich die Schlüssel in einem mehrdimensionalen Array überprüfen??Wie man es speziell benutzt?</span></span><span>

existieren PHP Mitte,`array_key_exists` 函数用于检查一个数组Mitte是否存existieren指定的Schlüssel。Die grundlegende Nutzung ist wie folgt:

```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">"Schlüssel 'name' 存existieren"</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">"Schlüssel 'name' 不存existieren"</span></span><span>;
}
</span></span>

Auslaufergebnisse:

 <span><span>Schlüssel </span><span><span class="hljs-string">'name'</span></span><span> 存existieren
</span></span>

1. Array_key_exists und mehrdimensionale Arrays

Es ist zu beachten, dass Array_key_exists nur Tasten auf der aktuellen Array -Ebene überprüfen können und verschachtelte Tasten in mehrdimensionalen Arrays nicht automatisch rekursiv überprüfen. Zum Beispiel:

 <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>

Das obige Beispiel zeigt:

  1. 'User' ist der Taste der obersten Ebene von $ multiarray , daher die Überprüfung der Rücksendung true .

  2. 'Name' ist nicht der Schlüssel der obersten Ebene von $ multiarray , daher gibt das direkte Überprüfen falsch zurück.

  3. Wenn Sie die Schlüsselschlüssel "Name" in einem verschachtelten Array überprüfen möchten, müssen Sie zuerst auf $ multiarray ['Benutzer'] zugreifen und dann array_key_exists aufrufen.

2. Methoden zum Überprüfen von Schlüssel in mehrdimensionalen Arrays

Wenn Sie rekursiv überprüfen möchten, ob ein Schlüssel in einem mehrdimensionalen Array vorhanden ist, können Sie selbst eine Helferfunktion schreiben:

 <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">// Beispiel</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>

Diese Funktion wird über jede Schicht im Array iteriert und true zurück, wenn der angegebene Schlüssel gefunden wird, andernfalls gibt sie schließlich false zurück.

3. Zusammenfassung

  1. Array_key_exists überprüfen nur standardmäßig die Schlüssel auf der aktuellen Array -Ebene.

  2. Verschachtelte Schlüssel in mehrdimensionalen Arrays müssen zuerst auf das entsprechende Subtarray zugreifen oder rekursive Funktionen verwenden.

  3. Verwenden Sie rekursive Methoden, um zu überprüfen, ob ein Schlüssel in einem mehrschichtigen Array vorhanden ist, das sehr geeignet ist, Arrays oder komplexe Datenstrukturen zu konfigurieren.

Mit diesem Ansatz können Sie die Schlüsselprüfung in mehrdimensionalen Arrays flexibler behandeln, ohne durch die Einschränkungen von Array_key_exists beunruhigt zu werden.

 <span></span>