本文實例講述了PHP實現二維數組根據key進行排序的方法。分享給大家供大家參考,具體如下:
在PHP中內置了很多對數組進行處理的函數,有很多時候我們直接使用其內置函數就能達到我們的需求,得到我們所想要的結果;但是,有的時候我們卻不能通過使用內置函數實現我們的要求,這就需要我們自己去編寫算法來對自己的想法進行實現。下面就講述一下如何實現二維數組根據key進行排序。
實現方法:
<?php /** * ======================================= * Created by Zhihua_W. * Author: Zhihua_W * Date: 2016/11/26 0002 * Time: 下午 2:43 * Project: PHP開發小技巧 * Power: 實現二維數組根據key進行排序 * ======================================= */ /** * 二維數組排序 * @param array $arr 需要排序的二維數組 * @param string $keys 所根據排序的key * @param string $type 排序類型,desc、asc * @return array $new_array 排好序的結果 */ function array_sort($arr, $keys, $type = 'desc') { $key_value = $new_array = array(); foreach ($arr as $k => $v) { $key_value[$k] = $v[$keys]; } if ($type == 'asc') { asort($key_value); } else { arsort($key_value); } reset($key_value); foreach ($key_value as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; } $arr = array( array( 'name' => 'a', 'sex' => 'm', 'sort' => 5 ), array( 'name' => 'c', 'sex' => 'm', 'sort' => 8 ), array( 'name' => 'g', 'sex' => 'm', 'sort' => 3 ), array( 'name' => 'e', 'sex' => 'w', 'sort' => 6 ), array( 'name' => 'b', 'sex' => 'w', 'sort' => 2 ), ); //打印出原數組 print_r($arr); //打印出排好序的數組 print_r(array_sort($arr,'name')); ?>
通過打印出的結果我們就可以看到,數組根據“name”進行排序。
//原數組 Array ( [0] => Array ( [name] => a [sex] => m [sort] => 5 ) [1] => Array ( [name] => c [sex] => m [sort] => 8 ) [2] => Array ( [name] => g [sex] => m [sort] => 3 ) [3] => Array ( [name] => e [sex] => w [sort] => 6 ) [4] => Array ( [name] => b [sex] => w [sort] => 2 ) ) //排序後數組 Array ( [2] => Array ( [name] => g [sex] => m [sort] => 3 ) [3] => Array ( [name] => e [sex] => w [sort] => 6 ) [1] => Array ( [name] => c [sex] => m [sort] => 8 ) [4] => Array ( [name] => b [sex] => w [sort] => 2 ) [0] => Array ( [name] => a [sex] => m [sort] => 5 ) )
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php常用函數與技巧總結》、《PHP錯誤與異常處理方法總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。