Position actuelle: Accueil> Derniers articles> [Comment utiliser Array_values ​​et Array_Keys Fonctions en PHP? Analyse d'instructions détaillée

[Comment utiliser Array_values ​​et Array_Keys Fonctions en PHP? Analyse d'instructions détaillée

gitbox 2025-08-25

1. Introduction de base

  • : Renvoie tous les noms de clés du tableau. Si une valeur de recherche est spécifiée, toutes les clés contenant la valeur peuvent être filtrées.

     <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>
  • Fonction Array_Values : Renvoie toutes les valeurs dans le tableau, ignore les noms de clés et Re-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. Exemple simple

Supposons que nous ayons un tableau associatif qui stocke les notes de plusieurs étudiants, où les clés du tableau sont les noms des étudiants et les valeurs sont leurs notes. Nous voulons découvrir tous les élèves dont les notes sont d'un score particulier.

 <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">// Obtenir tous les résultats comme85Étudiants</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>

Sortir :

 <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. Combinaison Utiliser des scénarios

L'utilisation de Array_Keys et Array_Values ​​en combinaison peut atteindre de nombreuses fonctions pratiques, en particulier lorsque nous devons gérer les valeurs et les clés du tableau.

Exemple 1: filtrez les touches en fonction des valeurs et reconstruisez un tableau d'index

Supposons que nous ayons un tableau associatif mixte où certaines valeurs peuvent être répétées, et nous voulons extraire les clés de ce tableau pour produire un tableau reconstruit qui ne contient qu'une valeur spécifique.

 <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">// Être inclus"orange"Toutes les clés</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">// utiliserarray_valuesObtenez les valeurs correspondant à ces clés</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>

Sortir :

 <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>
Exemple 2: Filtrez tous les éléments avec un nom clé d'une valeur spécifique

Si vous avez un tableau multidimensionnel, vous devrez peut-être découvrir la valeur de l'élément de tableau qui répond à une certaine condition. En combinant Array_keys et Array_Values , nous pouvons filtrer les résultats par une condition spécifique.

 <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">// Obtenir tous les prix égaux à400Produits</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">// Obtenez des informations détaillées sur ces produits</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>

Sortir :

 <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. Résumé

Les deux fonctions Array_values ​​et Array_Keys peuvent être combinées pour effectuer certaines opérations de tableau complexes. En correspondant raisonnablement à ces deux fonctions, nous pouvons nous aider à trouver, filtrer et reconstruire rapidement les tableaux. Ceci est particulièrement important dans le développement réel, en particulier lorsqu'il s'agit de tableaux multidimensionnels et de filtrage des valeurs ou des clés spécifiques dans les tableaux, il peut considérablement améliorer la lisibilité et l'efficacité du code.

La maîtrise de la combinaison de ces deux fonctions nous permet de traiter les données de réseau de manière plus flexible et d'améliorer l'efficacité de développement.