: 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>
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> => </span><span><span class="hljs-number">85</span></span><span>,
</span><span><span class="hljs-string">'Alice'</span></span><span> => </span><span><span class="hljs-number">90</span></span><span>,
</span><span><span class="hljs-string">'Bob'</span></span><span> => </span><span><span class="hljs-number">75</span></span><span>,
</span><span><span class="hljs-string">'Charlie'</span></span><span> => </span><span><span class="hljs-number">85</span></span><span>,
</span><span><span class="hljs-string">'David'</span></span><span> => </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>] => </span><span><span class="hljs-number">85</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">85</span></span><span>
)
</span></span>
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.
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> => </span><span><span class="hljs-string">'apple'</span></span><span>,
</span><span><span class="hljs-string">'item2'</span></span><span> => </span><span><span class="hljs-string">'orange'</span></span><span>,
</span><span><span class="hljs-string">'item3'</span></span><span> => </span><span><span class="hljs-string">'banana'</span></span><span>,
</span><span><span class="hljs-string">'item4'</span></span><span> => </span><span><span class="hljs-string">'apple'</span></span><span>,
</span><span><span class="hljs-string">'item5'</span></span><span> => </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>] => orange
[</span><span><span class="hljs-number">1</span></span><span>] => orange
)
</span></span>
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> => [</span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'Laptop'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> => </span><span><span class="hljs-number">800</span></span><span>],
</span><span><span class="hljs-string">'P002'</span></span><span> => [</span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'Phone'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> => </span><span><span class="hljs-number">400</span></span><span>],
</span><span><span class="hljs-string">'P003'</span></span><span> => [</span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'Tablet'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> => </span><span><span class="hljs-number">300</span></span><span>],
</span><span><span class="hljs-string">'P004'</span></span><span> => [</span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'Monitor'</span></span><span>, </span><span><span class="hljs-string">'price'</span></span><span> => </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>] => </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[name] => Phone
[price] => </span><span><span class="hljs-number">400</span></span><span>
)
)
</span></span>
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.
Verwandte Tags:
array_values array_keys