在平常的项目开发中我们多会用到让多维数组转化为一维数组的情况,但是很多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(
'name' => 'a',
'sex' => 'm',
'sort' => 5
),
array(
'name' => 'c',
'sex' => 'm',
'sort' => 8
),
array(
'name' => 'g',
'sex' => 'm',
'sort' => 3
),
array(
'name' => 'e',
'sex' => 'w',
'sort' => 6
),
array(
'name' => 'b',
'sex' => 'w',
'sort' => 2
),
);
print_r(array_multi2single($arr));
?>打印结果,实现多维数组转化为一维数组:
立即学习“PHP免费学习笔记(深入)”;
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
)以上就是PHP开发技巧(三)-多维数组转化为一维数组的代码详解的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号