数组排序在PHP中我们都知道使用asort函数就可以,但如果是多维数组按照其中某索引值进行排序。一般来说这类排序会引入临时数组来存储中间变量比如key值通过对key的排序实现多维数组的一个排序。以下是我写的一段按照二维数组中的时间值进行排序:
<?
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 ;
}
?>
// 以时间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 ;
}
?>