Maison  >  Article  >  développement back-end  >  Compétences en développement PHP (3) - Explication détaillée du code pour convertir des tableaux multidimensionnels en tableaux unidimensionnels

Compétences en développement PHP (3) - Explication détaillée du code pour convertir des tableaux multidimensionnels en tableaux unidimensionnels

黄舟
黄舟original
2017-03-10 18:38:451752parcourir

Dans le développement normal d'un projet, nous utilisons souvent la situation de conversion de tableaux multidimensionnels en tableaux unidimensionnels, mais de nombreux programmeurs ne les convertissent pas, et certains ne pensent pas à de bons algorithmes et passent ensuite par des méthodes de calcul compliquées. le convertit à peine bien, mais le code du programme écrit est très redondant, ce qui rend la complexité temporelle et spatiale du programme très importante. Ci-dessous, je décrirai comment j'y suis parvenu, et le code est simple et clair.

Méthode de mise en œuvre :

Ⅰ Utiliser un appel récursif ;
Ⅱ Définir d'abord une constante de tableau statique pour enregistrer le résultat ; Boucler à travers le tableau dimensionnel ; array, s'il s'agit d'une méthode d'appel récursive ;
          Ⅴ Sinon, placez le résultat dans une constante de tableau statique
            Ⅵ Renvoie le résultat (constante de tableau statique).


Code d'implémentation :

Imprimer le résultat et convertir le tableau multidimensionnel en un tableau unidimensionnel :
<?php  
  
/** 
 * ======================================= 
 * Created by Zhihua_W. 
 * Author: Zhihua_W 
 * Date: 2016/11/28 0003 
 * Time: 上午 9:11 
 * Project: PHP开发小技巧 
 * Power: 实现多维数组转化为一维数组 
 * ======================================= 
 */  
  
/** 
 * 多维数组转化为一维数组 
 * @param array $array 多维数组 
 * @return array $result_array 一维数组 
 */  
function array_multi2single($array)  
{  
    //首先定义一个静态数组常量用来保存结果  
    static $result_array = array();  
    //对多维数组进行循环  
    foreach ($array as $value) {  
        //判断是否是数组,如果是递归调用方法  
        if (is_array($value)) {  
            array_multi2single($value);  
        } else  //如果不是,将结果放入静态数组常量  
            $result_array [] = $value;  
    }  
    //返回结果(静态数组常量)  
    return $result_array;  
}  
  
$arr = array(  
    array(  
        &#39;name&#39; => &#39;a&#39;,  
        &#39;sex&#39; => &#39;m&#39;,  
        &#39;sort&#39; => 5  
    ),  
    array(  
        &#39;name&#39; => &#39;c&#39;,  
        &#39;sex&#39; => &#39;m&#39;,  
        &#39;sort&#39; => 8  
    ),  
    array(  
        &#39;name&#39; => &#39;g&#39;,  
        &#39;sex&#39; => &#39;m&#39;,  
        &#39;sort&#39; => 3  
    ),  
    array(  
        &#39;name&#39; => &#39;e&#39;,  
        &#39;sex&#39; => &#39;w&#39;,  
        &#39;sort&#39; => 6  
    ),  
    array(  
        &#39;name&#39; => &#39;b&#39;,  
        &#39;sex&#39; => &#39;w&#39;,  
        &#39;sort&#39; => 2  
    ),  
);  
  
print_r(array_multi2single($arr));  
  
?>

Array  
(  
    [0] => a  
    [1] => m  
    [2] => 5  
    [3] => c  
    [4] => m  
    [5] => 8  
    [6] => g  
    [7] => m  
    [8] => 3  
    [9] => e  
    [10] => w  
    [11] => 6  
    [12] => b  
    [13] => w  
    [14] => 2  
)

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