PHP开发技巧(三)-多维数组转化为一维数组的代码详解

黄舟
Libérer: 2023-03-06 13:40:02
original
1695 Les gens l'ont consulté

      在平常的项目开发中我们多会用到让多维数组转化为一维数组的情况,但是很多Programmer不会将其进行转化,也有些没有想到很好的算法然后经过乱起八糟的运算方式将其勉强转化好,但是所写的程序代码冗余非常的大,造成程序的时间复杂度以及空间复杂度非常大。下面就讲述一下我是如何实现这一情况,并且代码简单明了。

        实现方法:

                Ⅰ 使用递归调用;
                Ⅱ 首先定义一个静态数组常量用来保存结果;
                Ⅲ 对多维数组进行循环;
                Ⅳ 判断是否是数组,如果是递归调用方法;
                Ⅴ 如果不是,将结果放入静态数组常量;
                Ⅵ 返回结果(静态数组常量)。

        实现代码:

<?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));  
  
?>
Copier après la connexion

打印结果,实现多维数组转化为一维数组:

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  
)
Copier après la connexion


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!