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
转载随意,但请附上文章地址:-)