Обратитесь к этому сообщению php-sort-array-Alphabet-затем-Numerically
Это не может решить мою проблему.
У меня есть имя массива $test
, если print_r($test)
покажет
Array
(
[0] => Array
(
[hrid] => 1
[masterroom] => B4-G-3
)
[1] => Array
(
[hrid] => 2
[masterroom] => B4-G-1
)
[2] => Array
(
[hrid] => 7
[masterroom] => B4-1-2
)
[3] => Array
(
[hrid] => 8
[masterroom] => B4-1-1
)
[4] => Array
(
[hrid] => 9
[masterroom] => B4-1-10
)
[5] => Array
(
[hrid] => 10
[masterroom] => B4-G-10
)
)
И я попробую ниже (см. Ответ выше по ссылке):
function myComparison($a, $b){
if(is_numeric($a) && !is_numeric($b))
return 1;
else if(!is_numeric($a) && is_numeric($b))
return -1;
else
return ($a < $b) ? -1 : 1;
}
usort ( $test , 'myComparison' );
Результат:
Array
(
[0] => Array
(
[hrid] => 1
[masterroom] => B4-G-1
)
[1] => Array
(
[hrid] => 2
[masterroom] => B4-G-3
)
[2] => Array
(
[hrid] => 7
[masterroom] => B4-1-1
)
[3] => Array
(
[hrid] => 8
[masterroom] => B4-1-2
)
[4] => Array
(
[hrid] => 9
[masterroom] => B4-1-10
)
[5] => Array
(
[hrid] => 10
[masterroom] => B4-G-10
)
)
Но я хочу, чтобы это было:
Array
(
[0] => Array
(
[hrid] => 1
[masterroom] => B4-G-1
)
[1] => Array
(
[hrid] => 2
[masterroom] => B4-G-3
)
[2] => Array
(
[hrid] => 10
[masterroom] => B4-G-10
)
[3] => Array
(
[hrid] => 7
[masterroom] => B4-1-1
)
[4] => Array
(
[hrid] => 8
[masterroom] => B4-1-2
)
[5] => Array
(
[hrid] => 9
[masterroom] => B4-1-10
)
)
Спасибо.