Position actuelle: Accueil> Derniers articles> [Comment utiliser la fonction Array_Values ​​pour obtenir toutes les valeurs dans un tableau multidimensionnel PHP? Explication détaillée des étapes de fonctionnement

[Comment utiliser la fonction Array_Values ​​pour obtenir toutes les valeurs dans un tableau multidimensionnel PHP? Explication détaillée des étapes de fonctionnement

gitbox 2025-09-09

1. Introduction à la fonction array_values ​​() de base

Array_Values ​​() est une fonction intégrée de PHP, qui renvoie toutes les valeurs dans le tableau, et le tableau renvoyé est un tableau sans nom de clé, et toutes les touches seront réindexées (à partir de 0).

Définition de la fonction:

 <span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array</span></span><span>) : </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
  • $ array : le tableau d'entrée, array_values ​​() renvoie toutes les valeurs de ce tableau.

  • Valeur de retour: un nouveau tableau contenant toutes les valeurs du tableau d'origine, et le nom de clé du tableau d'origine est réinitialisé avec des numéros consécutifs (à partir de 0).

2. Application de base de Array_Values ​​()

Tout d'abord, regardons un exemple simple pour montrer comment utiliser array_values ​​() dans un tableau normal:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$arr</span></span><span> = [
    </span><span><span class="hljs-number">1</span></span><span> =&gt; </span><span><span class="hljs-string">'apple'</span></span><span>,
    </span><span><span class="hljs-number">2</span></span><span> =&gt; </span><span><span class="hljs-string">'banana'</span></span><span>,
    </span><span><span class="hljs-number">3</span></span><span> =&gt; </span><span><span class="hljs-string">'cherry'</span></span><span>
];

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Résultat de sortie:

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

On peut voir que les noms de clés (1, 2, 3) du tableau d'origine ont été réinitialisés à 0, 1, 2, et la valeur demeure.

3. Utilisez array_values ​​() dans un tableau multidimensionnel

Pour les tableaux multidimensionnels, nous pouvons également utiliser array_values ​​() pour y extraire les valeurs. Mais sachez que Array_Values ​​() n'agira que sur la couche la plus externe du tableau, et ne fera pas de manière récursive la sous-trait intérieure. Si vous avez besoin d'obtenir toutes les valeurs dans un tableau multidimensionnel, un traitement supplémentaire est requis.

3.1 Extraction des valeurs des tableaux bidimensionnels

Supposons que nous ayons un tableau bidimensionnel avec plusieurs sous-réseaux à partir desquels nous voulons extraire toutes les valeurs:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$arr</span></span><span> = [
    </span><span><span class="hljs-string">"fruit"</span></span><span> =&gt; [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>],
    </span><span><span class="hljs-string">"vegetable"</span></span><span> =&gt; [</span><span><span class="hljs-string">"carrot"</span></span><span>, </span><span><span class="hljs-string">"tomato"</span></span><span>],
    </span><span><span class="hljs-string">"meat"</span></span><span> =&gt; [</span><span><span class="hljs-string">"chicken"</span></span><span>, </span><span><span class="hljs-string">"beef"</span></span><span>]
];

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Résultat de sortie:

 <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>
        (
            [</span><span><span class="hljs-number">0</span></span><span>] =&gt; apple
            [</span><span><span class="hljs-number">1</span></span><span>] =&gt; banana
        )
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
        (
            [</span><span><span class="hljs-number">0</span></span><span>] =&gt; carrot
            [</span><span><span class="hljs-number">1</span></span><span>] =&gt; tomato
        )
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
        (
            [</span><span><span class="hljs-number">0</span></span><span>] =&gt; chicken
            [</span><span><span class="hljs-number">1</span></span><span>] =&gt; beef
        )
)
</span></span>

Comme vous pouvez le voir, Array_Values ​​() ne fonctionne que sur des tableaux externes et ne modifie pas le contenu de chaque sous-réseau.

3.2 Extraire récursivement toutes les valeurs

Si nous voulons obtenir toutes les valeurs dans un tableau multidimensionnel sans conserver aucun nom de clé, nous pouvons le gérer récursivement. Cela peut être réalisé en utilisant la fonction array_map () combinée avec array_values ​​() :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">get_all_values</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$array</span></span></span><span>) {
    </span><span><span class="hljs-variable">$values</span></span><span> = </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><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$values</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> &amp;</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>)) {
            </span><span><span class="hljs-variable">$value</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_all_values</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>); </span><span><span class="hljs-comment">// Traiter récursivement les tableaux internes</span></span><span>
        }
    }
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$values</span></span><span>;
}

</span><span><span class="hljs-variable">$arr</span></span><span> = [
    </span><span><span class="hljs-string">"fruit"</span></span><span> =&gt; [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>],
    </span><span><span class="hljs-string">"vegetable"</span></span><span> =&gt; [</span><span><span class="hljs-string">"carrot"</span></span><span>, </span><span><span class="hljs-string">"tomato"</span></span><span>],
    </span><span><span class="hljs-string">"meat"</span></span><span> =&gt; [</span><span><span class="hljs-string">"chicken"</span></span><span>, </span><span><span class="hljs-string">"beef"</span></span><span>]
];

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_all_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Résultat de sortie:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; apple
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; carrot
    [</span><span><span class="hljs-number">3</span></span><span>] =&gt; tomato
    [</span><span><span class="hljs-number">4</span></span><span>] =&gt; chicken
    [</span><span><span class="hljs-number">5</span></span><span>] =&gt; beef
)
</span></span>

Par récursivité, nous extrassons avec succès toutes les valeurs d'un tableau multidimensionnel et renvoyons un tableau aplati.

4. La combinaison de Array_Values ​​() et Array_merge ()

Parfois, nous voulons fusionner toutes les valeurs d'un tableau multidimensionnel en un seul tableau. Dans ce cas, Array_Values ​​() peut être utilisé en conjonction avec array_merge () :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$arr</span></span><span> = [
    </span><span><span class="hljs-string">"fruit"</span></span><span> =&gt; [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>],
    </span><span><span class="hljs-string">"vegetable"</span></span><span> =&gt; [</span><span><span class="hljs-string">"carrot"</span></span><span>, </span><span><span class="hljs-string">"tomato"</span></span><span>],
    </span><span><span class="hljs-string">"meat"</span></span><span> =&gt; [</span><span><span class="hljs-string">"chicken"</span></span><span>, </span><span><span class="hljs-string">"beef"</span></span><span>]
];

</span><span><span class="hljs-variable">$flattened</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_merge</span></span><span>(
    </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'fruit'</span></span><span>]),
    </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'vegetable'</span></span><span>]),
    </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'meat'</span></span><span>])
);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$flattened</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Résultat de sortie:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; apple
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; carrot
    [</span><span><span class="hljs-number">3</span></span><span>] =&gt; tomato
    [</span><span><span class="hljs-number">4</span></span><span>] =&gt; chicken
    [</span><span><span class="hljs-number">5</span></span><span>] =&gt; beef
)
</span></span>

De cette façon, nous pouvons combiner plusieurs sous-nombres dans un tableau pour un traitement ultérieur plus facile.

5. Résumé

Array_Values ​​() est une fonction PHP très utile, en particulier lorsqu'il s'agit de tableaux multidimensionnels, qui peuvent facilement extraire toutes les valeurs. Bien qu'il ne prenne pas lui-même lui-même l'extraction récursive des valeurs de tous les sous-réseaux, nous pouvons facilement y parvenir en écrivant des fonctions récursives ou en combinaison avec d'autres fonctions PHP.

J'espère que cet article peut vous aider à mieux comprendre et utiliser la fonction Array_Values ​​() à travers des exemples spécifiques.