首页 > php数组 > php二维数组排序与遍历

php二维数组排序与遍历

关于php二维数组定义我就不说多了,很简单的,下面几款实例都是讲关于php 二维数组排序与遍历,我们每个实例都是以不同的方法介绍,代码如下:

function multi_array_sort($multi_array,$sort_key,$sort=sort_asc){    
    if(is_array($multi_array)){    
        foreach ($multi_array as $row_array){    
            if(is_array($row_array)){    
                $key_array[] = $row_array[$sort_key];    
            }else{    
                return -1;    
            }    
        }    
    }else{    
        return -1;    
    }    
    array_multisort($key_array,$sort,$multi_array);    
    return $multi_array;    
}  
 
array( 
array('id'=>1,'data'=>'a'), 
array('id'=>3,'data'=>'c'), 
array('id'=>2,'data'=>'b') 
);

php本身是有一个多维数组排序的函数的,代码如下:

bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $... ]]] )

方法二,代码如下:

<?php
//以时间inputdate为key值进行二维数组降序排列
function array_sort($arr, $keys, $type) {
    $keysvalue = array();
    $i = 0;
    foreach ($arr as $key => $val) {
        $val[$keys] = str_replace("-", "", $val[$keys]);
        $val[$keys] = str_replace(" ", "", $val[$keys]);
        $val[$keys] = str_replace(":", "", $val[$keys]);
        $keysvalue[] = $val[$keys];
    }
    asort($keysvalue); //key值排序
    reset($keysvalue); //指针重新指向数组第一个
    foreach ($keysvalue as $key => $vals) {
        $keysort[] = $key;
    }
    $new_array = array();
    if ($type != "asc") {
        for ($ii = count($keysort) - 1; $ii >= 0; $ii--) {
            $new_array[] = $arr[$keysort[$ii]];
        }
    } else {
        for ($ii = 0; $ii < count($keysort); $ii++) {
            $new_array[] = $arr[$keysort[$ii]];
        }
    }
    return $new_array;
}

方法三,代码如下:

<?php 
$a = array( 
   0=>array("id"=>1,"name"=>"小何","addr"=>"0:1"), 
   1=>array("id"=>2,"name"=>"小刚","addr"=>"0:1:2"), 
   2=>array("id"=>3,"name"=>"小军","addr"=>"0:1:3"), 
   3=>array("id"=>4,"name"=>"公司","addr"=>"0:4"), 
); 
function sort_by($array, $keyname = null, $sortby){ 
$myarray = $inarray = array(); 
foreach($array as $i=>$befree){ 
    $myarray[$i] = $array[$i][$keyname]; 
} 
switch($sortby){ 
   case 'asc': 
   asort($myarray); 
   break; 
   case 'arsort': 
   arsort($myarray); 
   break; 
   case 'natcasesor': 
   natcasesor($myarray); 
   break; 
} 
foreach($myarray as $key=>$befree){ 
$inarray[$key] = $array[$key]; 
} 
  return $inarray; 
} 
print_r(sort_by($a,"addr","arsort")); 
print_r($a[2]["id"]);

   


本文地址:http://www.phprm.com/shuzu/fs5721.html

转载随意,但请附上文章地址:-)

标签:php二维数组排序 php数组遍历

相关文章

发表留言