/**
* 二维数组排序(td是two-dimension的意思)
*
* @param array $arr
* @param string $fieldA
* @param string $sortA
* @param string $fieldB
* @param string $sortB
* @param string $fieldC
* @param string $sortC
*/
static function tdSort(&$arr, $fieldA, $sortA = SORT_ASC, $fieldB = '', $sortB = SORT_ASC, $fieldC = '', $sortC = SORT_ASC) {
if (!is_array($arr) || count($arr) < 1) {
return false;
}
$arrTmp = array();
foreach ($arr as $rs) {
foreach ($rs as $key => $value) {
$arrTmp["{$key}"][] = $value;
}
}
if (empty($fieldB)) {
if (!$arrTmp[$fieldA]) {
return false;
}
array_multisort($arrTmp[$fieldA], $sortA, $arr);
} elseif (empty($fieldC)) {
if (!$arrTmp[$fieldA] || !$arrTmp[$fieldB]) {
return false;
}
array_multisort($arrTmp[$fieldA], $sortA, $arrTmp[$fieldB], $sortB, $arr);
} else {
if (!$arrTmp[$fieldA] || !$arrTmp[$fieldB] || !$arrTmp[$fieldC]) {
return false;
}
array_multisort($arrTmp[$fieldA], $sortA, $arrTmp[$fieldB], $sortB, $arrTmp[$fieldC], $sortC, $arr);
}
return true;
}