Aktueller Standort: Startseite> Neueste Artikel> [Wie verwende ich Array_Values ​​und Array_Keys Funktionen in PHP? Detaillierte Instanzanalyse

[Wie verwende ich Array_Values ​​und Array_Keys Funktionen in PHP? Detaillierte Instanzanalyse

gitbox 2025-08-25

1. grundlegende Einführung

  • : Gibt alle Schlüsselnamen im Array zurück. Wenn ein Suchwert angegeben wird, können alle Schlüssel, die den Wert enthalten, herausgefiltert werden.

     <span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-variable">$search_value</span></span><span>, </span><span><span class="hljs-variable">$strict</span></span><span>);
    </span></span>
  • ARRAY_VALUES -Funktion : Gibt alle Werte im Array zurück, ignoriert die Schlüsselnamen und Index.

     <span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
    </span></span>

2. Einfaches Beispiel

Angenommen, wir haben ein assoziatives Array, das die Noten mehrerer Schüler speichert, in denen die Schlüssel der Array die Namen der Schüler und die Werte ihre Noten sind. Wir möchten alle Schüler herausfinden, deren Noten eine bestimmte Punktzahl haben.

 <span><span><span class="hljs-variable">$students</span></span><span> = [
    </span><span><span class="hljs-string">'John'</span></span><span> =&gt; </span><span><span class="hljs-number">85</span></span><span>,
    </span><span><span class="hljs-string">'Alice'</span></span><span> =&gt; </span><span><span class="hljs-number">90</span></span><span>,
    </span><span><span class="hljs-string">'Bob'</span></span><span> =&gt; </span><span><span class="hljs-number">75</span></span><span>,
    </span><span><span class="hljs-string">'Charlie'</span></span><span> =&gt; </span><span><span class="hljs-number">85</span></span><span>,
    </span><span><span class="hljs-string">'David'</span></span><span> =&gt; </span><span><span class="hljs-number">95</span></span><span>
];

</span><span><span class="hljs-variable">$search_score</span></span><span> = </span><span><span class="hljs-number">85</span></span><span>;

</span><span><span class="hljs-comment">// Holen Sie sich alle Ergebnisse als85Studenten</span></span><span>
</span><span><span class="hljs-variable">$keys</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$students</span></span><span>, </span><span><span class="hljs-variable">$search_score</span></span><span>);
</span><span><span class="hljs-variable">$students_with_score</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_intersect_key</span></span><span>(</span><span><span class="hljs-variable">$students</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_flip</span></span><span>(</span><span><span class="hljs-variable">$keys</span></span><span>)));

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$students_with_score</span></span><span>);
</span></span>

Ausgabe :

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; </span><span><span class="hljs-number">85</span></span><span>
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; </span><span><span class="hljs-number">85</span></span><span>
)
</span></span>

3.. Kombinationsnutzungsszenarien

Die Verwendung von Array_Keys und Array_Values ​​in Kombination kann viele praktische Funktionen erzielen, insbesondere wenn wir uns mit den Werten und Tasten des Arrays befassen müssen.

Beispiel 1: Filtern Sie die Tasten basierend auf Werten heraus und bauen Sie ein Indexarray wieder auf

Angenommen, wir haben ein gemischtes assoziatives Array, in dem einige Werte wiederholt werden können, und wir möchten die Schlüssel dieses Arrays extrahieren, um ein rekonstruiertes Array zu erzeugen, das nur einen bestimmten Wert enthält.

 <span><span><span class="hljs-variable">$items</span></span><span> = [
    </span><span><span class="hljs-string">'item1'</span></span><span> =&gt; </span><span><span class="hljs-string">'apple'</span></span><span>,
    </span><span><span class="hljs-string">'item2'</span></span><span> =&gt; </span><span><span class="hljs-string">'orange'</span></span><span>,
    </span><span><span class="hljs-string">'item3'</span></span><span> =&gt; </span><span><span class="hljs-string">'banana'</span></span><span>,
    </span><span><span class="hljs-string">'item4'</span></span><span> =&gt; </span><span><span class="hljs-string">'apple'</span></span><span>,
    </span><span><span class="hljs-string">'item5'</span></span><span> =&gt; </span><span><span class="hljs-string">'orange'</span></span><span>
];

</span><span><span class="hljs-variable">$filter_value</span></span><span> = </span><span><span class="hljs-string">'orange'</span></span><span>;

</span><span><span class="hljs-comment">// Holen Sie sich einbezogen"orange"Alle Schlüssel</span></span><span>
</span><span><span class="hljs-variable">$keys</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$items</span></span><span>, </span><span><span class="hljs-variable">$filter_value</span></span><span>);

</span><span><span class="hljs-comment">// verwendenarray_valuesHolen Sie sich die Werte, die diesen Schlüssel entsprechen</span></span><span>
</span><span><span class="hljs-variable">$filtered_values</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_intersect_key</span></span><span>(</span><span><span class="hljs-variable">$items</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_flip</span></span><span>(</span><span><span class="hljs-variable">$keys</span></span><span>)));

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filtered_values</span></span><span>);
</span></span>

Ausgabe :

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; orange
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; orange
)
</span></span>
Beispiel 2: Filtern Sie alle Elemente mit einem Schlüsselnamen eines bestimmten Wertes

Wenn Sie ein mehrdimensionales Array haben, müssen Sie möglicherweise den Wert des Array -Elements herausfinden, das einer bestimmten Bedingung erfüllt. Durch Kombination von Array_Keys und Array_Values ​​können wir die Ergebnisse durch eine bestimmte Bedingung herausfiltern.

 <span><span><span class="hljs-variable">$products</span></span><span> = [
    </span><span><span class="hljs-string">'P001'</span></span><span> =&gt; [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Laptop'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> =&gt; </span><span><span class="hljs-number">800</span></span><span>],
    </span><span><span class="hljs-string">'P002'</span></span><span> =&gt; [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Phone'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> =&gt; </span><span><span class="hljs-number">400</span></span><span>],
    </span><span><span class="hljs-string">'P003'</span></span><span> =&gt; [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Tablet'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> =&gt; </span><span><span class="hljs-number">300</span></span><span>],
    </span><span><span class="hljs-string">'P004'</span></span><span> =&gt; [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'Monitor'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> =&gt; </span><span><span class="hljs-number">600</span></span><span>],
];

</span><span><span class="hljs-variable">$target_price</span></span><span> = </span><span><span class="hljs-number">400</span></span><span>;

</span><span><span class="hljs-comment">// Holen Sie sich alle Preise entspricht400Produkte</span></span><span>
</span><span><span class="hljs-variable">$product_keys</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_column</span></span><span>(</span><span><span class="hljs-variable">$products</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span>), </span><span><span class="hljs-variable">$target_price</span></span><span>);

</span><span><span class="hljs-comment">// Erhalten Sie detaillierte Informationen zu diesen Produkten</span></span><span>
</span><span><span class="hljs-variable">$target_products</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_intersect_key</span></span><span>(</span><span><span class="hljs-variable">$products</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_flip</span></span><span>(</span><span><span class="hljs-variable">$product_keys</span></span><span>)));

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$target_products</span></span><span>);
</span></span>

Ausgabe :

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
        (
            [name] =&gt; Phone
            [price] =&gt; </span><span><span class="hljs-number">400</span></span><span>
        )
)
</span></span>

4. Zusammenfassung

Die beiden Funktionen array_values ​​und array_keys können kombiniert werden, um einige komplexe Array -Operationen abzuschließen. Indem wir diese beiden Funktionen vernünftigerweise übereinstimmen, können wir uns helfen, Arrays schnell zu finden, zu filtern und zu rekonstruieren. Dies ist besonders wichtig in der tatsächlichen Entwicklung, insbesondere wenn es sich um mehrdimensionale Arrays handelt und bestimmte Werte oder Schlüssel in Arrays filtert, kann die Lesbarkeit und Effizienz des Codes erheblich verbessern.

Durch das Beherrschen der Kombination dieser beiden Funktionen können wir Array -Daten flexibler verarbeiten und die Entwicklungseffizienz verbessern.