array("name" => "",
"uid" => "",
"nid" => "",
"vid" => "");
,我需要它排序是這樣的:排序這個數組根據自定義條件
array("nid" => "",
"uid" => "",
"vid" => "",
"name" => "");
但我似乎無法弄清楚array_map,uksort()......或任何其他。感謝
array("name" => "",
"uid" => "",
"nid" => "",
"vid" => "");
,我需要它排序是這樣的:排序這個數組根據自定義條件
array("nid" => "",
"uid" => "",
"vid" => "",
"name" => "");
但我似乎無法弄清楚array_map,uksort()......或任何其他。感謝
不是那種因爲如此,但如果你只盯着4個按鍵,那麼爲什麼不:
$newArray = array("nid" => $array["nid"], "uid" => $array["uid"], "vid" => $array["vid"], "name" => $array["name"]);
因爲有時候第一個數組並沒有所有的鍵,我需要把鍵存在(即使這個值爲空),這最終會工作得最好,謝謝。 – 2012-03-13 23:15:08
你可以使用uksort()。
function myksort($a, $b) {
$korder = array('nid', 'uid', 'vid', 'name');
return (array_search($a, $korder) < array_search($b, $korder)) : -1 ? 1;
}
uksort($array, 'myksort');
您是否檢查了function reference for uksort?
既然你要以升序通過其按鍵的字母順序排序的數組,但有「姓名」鍵最後,即使你以後添加附加鍵這應該工作:
<?php
class MySortHelper
{
function sort_my_array($a, $b)
{
if ($a == $b) return 0;
if ($a == 'name') return 1;
if ($b == 'name') return -1;
return ($a > $b) ? 1 : -1;
}
}
// ...
$my_sort_helper = new MySortHelper();
uksort($my_array, array($my_sort_helper, 'sort_my_array'));
什麼_is_的標準是什麼? – 2012-03-13 22:57:12