3个PHP多维数组转为一维数组的方法实例

 这篇文章主要介绍了3个PHP多维数组转为一维数组的方法实例,分别使用foreach、for、while三种循环方法来实现,需要的朋友可以参考下

很多时候我们需要将多维数组转成一维数组,因为我们只需要一维数组,而且一维数组使用起来更方便,在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=>array(5,6)),7);
   print_r(arr_foreach($a));
?>
二、使用for循环,只能遍历数字下标的数组
 代码如下:<?php
   function arr_foreach($arr)
   {
      static $tmp=array();  
 
      for($i=0; $i<count($arr); $i++)
      {  
         if(is_array($arr[$i]))
         {  
            arr_foreach($arr[$i]);  
         }else{  
            $tmp[]=$arr[$i];  
         }  
      }  
 
      return $tmp;  
   } 
   //调用例子
   $a = array(1,array(3,array(5,6)),7);
   print_r(arr_foreach($a));
?>
三、使用while
 代码如下:/**
 * 将多维数组转为一维数组
 * @author echo
 * @link http://www.jb51.net/
 * @param array $arr
 * @return array
 */
function ArrMd2Ud($arr) {
 #将数值第一元素作为容器,作地址赋值。
 $ar_room = &$arr[key($arr)];
 #第一容器不是数组进去转呀
 if (!is_array($ar_room)) {
  #转为成数组
  $ar_room = array($ar_room);
 }
 #指针下移
 next($arr);
 #遍历
 while (list($k, $v) = each($arr)) {
  #是数组就递归深挖,不是就转成数组
  $v = is_array($v) ? call_user_func(__FUNCTION__, $v) : array($v);
  #递归合并
  $ar_room = array_merge_recursive($ar_room, $v);
  #释放当前下标的数组元素
  unset($arr[$k]);
 }
 return $ar_room;
}
 
调用示例:
 代码如下:
$arr = array(1, 2, 3 => array(1, 2, 'ar' => array(1, 2 => array('a', 'b'))), array('ar' => array(3, 4)));
print_r(ArrMd2Ud($arr));
输出:
 代码如下:
Array
(
    [0] => 1
    [1] => 2
    [2] => 1
    [3] => 2
    [4] => 1
    [5] => a
    [6] => b
    [7] => 3
    [8] => 4
)
 
 

时间: 2024-11-01 05:09:36

3个PHP多维数组转为一维数组的方法实例的相关文章

3个PHP多维数组转为一维数组的方法实例_php实例

很多时候我们需要将多维数组转成一维数组,因为我们只需要一维数组,而且一维数组使用起来更方便,在PHP中如何将多维数组转成一维数组?下面我们来看看三个多维数组转为一维数组例子:一.使用foreach 复制代码 代码如下: <?php   function arr_foreach ($arr)    {      static $tmp=array();        if (!is_array ($arr))       {         return false;      }      fo

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

如何将下面的二维数组转为一维数组. 复制代码 代码如下: $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; }

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

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

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

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

PHP多维数组转一维数组的简单实现方法_php技巧

本文实例讲述了PHP多维数组转一维数组的简单实现方法.分享给大家供大家参考,具体如下: php语言本身没有将多维数组转为一维数组的函数,但是我们可以自己写一个php函数来实现将多维转一维的功能. 运用了递归,简单粗暴,整个函数体9行代码就实现了该功能,php源码如下: $multi = array( array( array( 'wo', 'shi' ), 'php' ), 'cheng', array( array( 'xu', 'yuan', ) ), '!' ); $multi = arr

php多维数组转一维数组的函数

php语言本身没有将多维数组转为一维数组的函数,但是我们可以自己写一个php函数来实现将多维转一维的功能. 运用了递归,简单粗暴,整个函数体9行代码就实现了该功能,php源码如下: $multi = array(  array(   array(    'wo',    'shi'   ),   'php'  ),  'cheng',  array(   array(    'xu',    'yuan',   )  ),  '!' ); $multi = arrToOne($multi); p

PHP实现多维数组转字符串和多维数组转一维数组的方法_php技巧

本文实例讲述了PHP实现多维数组转字符串和多维数组转一维数组的方法.分享给大家供大家参考.具体实现方法如下: /** * @method 多维数组转字符串 * @param type $array * @return type $srting * @author yanhuixian */ function arrayToString($arr) { if (is_array($arr)){ return implode(',', array_map('arrayToString', $arr)

php数组排序之多维数组与一维数组

一维数组 第一组 :sort 和 rsort ,按照PHP数组键值的顺序asc和逆序desc进行排序,同时破坏原来数组的索引关系--其实是删除索引之后重新建立从0开始的数字索引.看一下例程:  代码如下 复制代码  <?php $a = array("a"=>1,2); sort($a); var_dump($a);   rsort($a); var_dump($a); ?> 看一下第一个输出结果,第一个输出: array(2) {   [0]=>   int(

php实现搜索一维数组元素并删除二维数组对应元素的方法_php技巧

本文实例讲述了php实现搜索一维数组元素并删除二维数组对应元素的方法.分享给大家供大家参考.具体如下: 定义一个一维数组一个二维数组如下 $fruit=array('apple','orange'); $products = array( array('name'=>'apple','price'=>23.4), array('name'=>'orange','price'=>45.3), array('name'=>'biscuit','number'=>5,'pri