好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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" ));  //开源软件:phpfensi测试数据   print_r( $a [2][ "id" ]);  ?>

查看更多关于php二维数组排序与遍历 - php数组的详细内容...

  阅读:38次