PHP實現二維數組按指定的鍵名排序的方法示例
本文實例講述了PHP實現二維數組按指定的鍵名排序的方法。分享給大家供大家參考,具體如下:
<?php
/*二維數組按指定的鍵值排序*/
function array_sort($array,$keys,$type='asc'){
if(!isset($array) || !is_array($array) || empty($array)){
return '';
}
//排序字段名,如:id
if(!isset($keys) || trim($keys)==''){
return '';
}
//排序方式,如:desc、asc
if(!isset($type) || $type=='' || !in_array(strtolower($type),array('asc','desc'))){
return '';
}
//定義一個數組
$keysvalue=array();
foreach($array as $key=>$val){
//對排序字段值進行過濾
$val[$keys] = str_replace('-','',$val[$keys]);
$val[$keys] = str_replace(' ','',$val[$keys]);
$val[$keys] = str_replace(':','',$val[$keys]);
//將記錄中指定的鍵名放入數組中,如:[0]=>5,[1]=>3,[2]=>6
$keysvalue[] =$val[$keys];//排序字段,如:id 索引=》排序鍵名
}
asort($keysvalue); //按值升序排序,且保持鍵名與鍵值之間的索引關系,如:[1]=>3,[0]=>5,[2]=>6
reset($keysvalue); //指針重新指向數組第一個
foreach($keysvalue as $key=>$vals) {
$keysort[] = $key;//0=>[1],1=>[0],2=>[2]
}
$keysvalue = array();
$count=count($keysort);//排序記錄數
if(strtolower($type) != 'asc'){//降序
for($i=$count-1; $i>=0; $i--) {
$keysvalue[] = $array[$keysort[$i]];
}
}else{//升序
for($i=0; $i<$count; $i++){
$keysvalue[] = $array[$keysort[$i]];
}
}
return $keysvalue;
}
$array=array(
array('name'=>'Tom','age'=>'23','like'=>'beer'),
array('name'=>'Trump','age'=>'50','like'=>'Food'),
array('name'=>'Jack','age'=>'26','like'=>'Travel')
);
print_r(array_sort($array,'age'));
?>
運行結果:
Array
(
[0] => Array
(
[name] => Tom
[age] => 23
[like] => beer
)
[1] => Array
(
[name] => Jack
[age] => 26
[like] => Travel
)
[2] => Array
(
[name] => Trump
[age] => 50
[like] => Food
)
)
PS:這里再為大家推薦2款比較實用的相關在線排序工具供大家參考使用:
在線中英文根據首字母排序工具:
http://tools.jb51.net/aideddesign/zh_paixu
在線文本倒序翻轉排序工具:
http://tools.jb51.net/aideddesign/flipped_txt
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php排序算法總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php常用函數與技巧總結》、《PHP錯誤與異常處理方法總結》、《php面向對象程序設計入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
php中用socket模擬http中post或者get提交數據的示例代碼
以下是對php中用socket模擬http中post或者get提交數據的示例代碼進行了介紹,需要的朋友可以過來參考下2013-08-08
非集成環(huán)境的php運行環(huán)境(Apache配置、Mysql)搭建安裝圖文教程
這篇文章主要介紹了非集成環(huán)境的php運行環(huán)境(Apache配置、Mysql)搭建安裝圖文教程,感興趣的小伙伴們可以參考一下2016-04-04

