PHP多维数组转一维数组

由于很多时候,我们需要将多维数组转成一维数组,因为我们只需要一维数组,而且一维数组使用起来更方便,在PHP中如何将多维数组转成一维数组?
<?php
function _rebuild_array($arr){  //rebuild a array
  static $tmp=array();

for($i=0; $i<count($arr); $i++){
    if(is_array($arr[$i])) _rebuild_array($arr[$i]);
    else $tmp[]=$arr[$i];
  }

return $tmp;
}
?>
下面举个例子来验证一下:
<?php
$arr=array(‘123.html‘,‘456.html‘,array(‘dw.html‘,‘fl.html‘,array(‘ps.html‘,‘fw.html‘)),‘ab.html‘);
//定义一个三维数组,用来检测我们的函数
echo ‘<pre>‘;
print_r(_rebuild_array($arr));
echo ‘</pre>‘;

时间: 2024-07-28 17:29:32

PHP多维数组转一维数组的相关文章

php多维数组化一维数组

一.使用foreach <?php function arr_foreach ($arr) { static $tmp=array(); if (!is_array ($arr)) { return false; } foreach ($arr as $val ) { if (is_array ($val)) { arr_foreach ($val); } else { $tmp[]=$val; } } return $tmp; } $a = array(1,2=>array(3,4=>

数组(一维数组、二维数组)

数组概述 C# 数组从零开始建立索引,即数组索引从零开始.C# 中数组的工作方式与在大多数其他流行语言中的工作方式类似.但还有一些差异应引起注意. 这些其实和泛型有些类似,数组的操作没有泛型方便,但是性能却不是泛型所能比拟的 声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面.在 C# 中,将方括号放在标识符后是不合法的语法. int[] table; // not int table[]; 另一细节是,数组的大小不是其类型的一部分,而在 C 语言中它却是数组类型的一部分.这使您可

将二维数组转为一维数组的2种方法

如何将下面的二维数组转为一维数组. 代码如下: $msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'name'=>'mary' ), array( 'id'=>'78', 'name'=>'lili' ), ); 第一种方法: 代码如下: foreach($msg as $k => $v){ $ids[] = $id; $names[] = $name; } 第二种方法: 代

implode 多维数组转一维数组并字符串输出

//多维数组返回一维数组,拼接字符串输出 public function r_implode( $glue, $pieces ) { foreach( $pieces as $r_pieces ) { if( is_array( $r_pieces ) ) { $retVal[] = self::r_implode( $glue, $r_pieces ); } else { $retVal[] = $r_pieces; } } return implode( $glue, $retVal );

多维数组变成一维数组

将多维数组变成一维数组: /** * @method 多维数组变成一维数组 * @staticvar array $result_array * @param type $array * @return type */ private function array_multi2array($array) { static $result_array = array(); foreach ($array as $key => $value) { if (is_array($value)) { $t

[C++]二维数组还是一维数组?

记得刚学习C++那会这个问题曾困扰过我,后来慢慢形成了不管什么时候都用一维数组的习惯,再后来知道了在一维数组中提出首列元素地址进行二维调用的办法.可从来没有细想过这个问题,最近自己写了点代码测试下,虽然还是有些不明就里,不过结果挺有意思. 为了避免编译器优化过度,用的是写操作,int,测试分为不同大小的空间,同样大小空间不同的行和列数.分别记录逐行写入,逐列写入,按间隔写入,空间申请和释放的时间. 测试代码 一维数组的申请和释放 1 // Create 2 int *m = new int[n_

C# 数组、一维数组、二维数组、多维数组、锯齿数组

C#  数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请使用集合. 二.一维数组: 声明及初始化: class Program { static void Main(string[] args) { //方法一 int[] num = new int[3];//声明一个长度为3的值类型的数组: num[0] = 3;//为数组赋值: num[1] = 5

把简单的二维数组变成一维数组

在工作中我们经常需要把二维数组变成一维数组.那么就需要循环拿出来,其实有时候我们可以使用一些小技巧,借助php的内置函数来实现,但是我说的只是简单的二维数数组$arr= array('name'=>array('a'=>'abc','b'=>'bcd','c'=>'cde'));如果我们使用array_pop(),就可以拿到一维数组了,array_pop()本来是删除并返回数组的最后一个元素. 所以我们就可以将上诉的$arr变成array('a'=>'abc','b'=>

随题而学(二)多维数组转一维数组

多维数组转一维数组:[1,[2,3]] ==> [1,2,3] function tran(array){ if(Object.prototype.toString.call(array) != '[object Array]'){ alert(Object.prototype.toString.call(array) + "非数组") return ; } var newArr = []; function trans(arr){ for (var num = 0; num &

利用递归把多维数组转为一维数组的函数

函数名称:array_multi2single 函数原形:array array_multi2single(array) 实现功能:把一个多维数组的数值存放到一维数组中,不保存Key. < ?php function array_multi2single($array) {     static $result_array=array();     foreach($array as $value)     {         if(is_array($value))         {