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" )); //开源软件:phpfensi测试数据 print_r( $a [2][ "id" ]); ?>查看更多关于php二维数组排序与遍历 - php数组的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31210