Maison  >  Article  >  développement back-end  >  Comment convertir un tableau à deux dimensions en un tableau à une dimension en php

Comment convertir un tableau à deux dimensions en un tableau à une dimension en php

PHPz
PHPzoriginal
2023-04-26 14:18:52789parcourir

Pendant le développement, vous pourriez rencontrer le besoin de convertir un tableau à deux dimensions en un tableau à une dimension. Cet article explique comment effectuer cette opération en PHP.

Un tableau bidimensionnel en PHP est un tableau composé de plusieurs tableaux unidimensionnels, tandis qu'un tableau unidimensionnel est un tableau composé d'une seule valeur. Par conséquent, pour convertir un tableau à deux dimensions en un tableau à une dimension, vous devez extraire toutes les valeurs du tableau à une dimension, puis les placer dans le nouveau tableau à une dimension.

1. Utilisez une boucle pour parcourir un tableau à deux dimensions

En PHP, vous pouvez utiliser une boucle pour parcourir un tableau à deux dimensions et ajouter les valeurs à un nouveau tableau à une dimension. L'implémentation spécifique est la suivante :

$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion'));

$singleArr = array();
foreach ($multiArr as $arr) {
    foreach ($arr as $value) {
        $singleArr[] = $value;
    }
}

print_r($singleArr);

Dans le code ci-dessus, un tableau bidimensionnel $multiArr est d'abord défini, qui contient deux tableaux unidimensionnels. Créez ensuite un tableau unidimensionnel vide $singleArr, puis utilisez deux foreach imbriqués pour parcourir chaque tableau unidimensionnel du tableau $multiArr et ses valeurs, et ajoute les valeurs à $singleArr. Enfin, utilisez la fonction print_r() pour imprimer $singleArr, et le résultat de sortie est : $multiArr,它包含两个一维数组。接着创建一个空的一维数组 $singleArr,然后使用两个嵌套的 foreach 循环遍历 $multiArr 中的每个一维数组和其中的值,并将值添加到 $singleArr 中。最后使用 print_r() 函数打印出 $singleArr,输出结果为:

Array
(
    [0] => apple
    [1] => banana
    [2] => pear
    [3] => cat
    [4] => dog
    [5] => lion
)

二、使用 call_user_func_array() 函数

除了循环遍历,还可以使用 call_user_func_array() 函数来将一个多维数组转换为一个一维数组。具体代码如下:

$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion'));

$singleArr = call_user_func_array('array_merge', $multiArr);

print_r($singleArr);

在上面的代码中,首先定义了一个二维数组 $multiArr,它包含两个一维数组。接着使用 call_user_func_array() 函数,第一个参数为 array_merge 函数名,表示要执行合并操作,第二个参数为 $multiArr 数组,表示要合并的多个数组。组合完的新数组就是一维数组 $singleArr。最后使用 print_r() 函数打印出 $singleArr,输出结果为:

Array
(
    [0] => apple
    [1] => banana
    [2] => pear
    [3] => cat
    [4] => dog
    [5] => lion
)

三、使用 array_reduce() 函数

除了上面两种方式,还可以使用 array_reduce() 函数来将二维数组转换为一维数组。具体的实现方式如下:

$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion'));

$singleArr = array_reduce($multiArr, 'array_merge', array());

print_r($singleArr);

在上面的代码中,首先定义了一个二维数组 $multiArr,它包含两个一维数组。接着使用 array_reduce() 函数,第一个参数为 $multiArr 数组,表示要进行合并操作的数组,第二个参数为 array_merge 函数名,表示要执行合并操作,第三个参数为一个空的数组,表示初始的一维数组为空数组。最后将组合完的新数组存放到一维数组 $singleArr 中,并使用 print_r() 函数打印输出结果,输出结果与前两种方式一样:

Array
(
    [0] => apple
    [1] => banana
    [2] => pear
    [3] => cat
    [4] => dog
    [5] => lion
)

四、总结

在本文中,介绍了三种将二维数组转换为一维数组的方式,在实际开发中可以根据需要选择合适的方式。对于简单的二维数组而言,第一种方式循环遍历可能更加容易理解和实现;对于较为复杂的多维数组,call_user_func_array() 函数和 array_reduce()rrreee

2. Utilisez la fonction call_user_func_array() fonction 🎜🎜en plus de la boucle À parcourir, vous pouvez également utiliser la fonction call_user_func_array() pour convertir un tableau multidimensionnel en un tableau unidimensionnel. Le code spécifique est le suivant : 🎜rrreee🎜Dans le code ci-dessus, un tableau bidimensionnel $multiArr est d'abord défini, qui contient deux tableaux unidimensionnels. Utilisez ensuite la fonction call_user_func_array(). Le premier paramètre est le nom de la fonction array_merge, indiquant que l'opération de fusion doit être effectuée. Le deuxième paramètre est $multiArr. Tableau, représentant plusieurs tableaux à fusionner. Le nouveau tableau combiné est un tableau unidimensionnel $singleArr. Enfin, utilisez la fonction print_r() pour imprimer $singleArr, et le résultat de sortie est : 🎜rrreee🎜 Troisièmement, utilisez array_reduce() fonction 🎜🎜En plus de ce qui précède De deux manières, vous pouvez également utiliser la fonction array_reduce() pour convertir un tableau à deux dimensions en un tableau à une dimension. L'implémentation spécifique est la suivante : 🎜rrreee🎜Dans le code ci-dessus, un tableau bidimensionnel $multiArr est d'abord défini, qui contient deux tableaux unidimensionnels. Utilisez ensuite la fonction array_reduce(). Le premier paramètre est le tableau $multiArr, qui représente le tableau à fusionner. Le deuxième paramètre est array_merge Nom de la fonction, indiquant que l'opération de fusion doit être effectuée. Le troisième paramètre est un tableau vide, indiquant que le tableau unidimensionnel initial est un tableau vide. Enfin, stockez le nouveau tableau combiné dans le tableau unidimensionnel <code>$singleArr et utilisez la fonction print_r() pour imprimer le résultat de sortie. Le résultat de sortie est le même que. les deux premières méthodes : 🎜 rrreee🎜4. Résumé🎜🎜Dans cet article, trois méthodes de conversion de tableaux bidimensionnels en tableaux unidimensionnels sont présentées. Dans le développement réel, vous pouvez choisir la méthode appropriée en fonction de vos besoins. Pour les tableaux bidimensionnels simples, la première méthode de parcours de boucle peut être plus facile à comprendre et à mettre en œuvre ; pour les tableaux multidimensionnels plus complexes, la fonction call_user_func_array() et array_reduce() code > Fonctions pourrait être plus pratique. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn