PHP-对数组的键进行排序,这些键是不同的字符串,但末尾包含数字
我的数组中有以下键:PHP-对数组的键进行排序,这些键是不同的字符串,但末尾包含数字,php,arrays,string,sorting,numerical,Php,Arrays,String,Sorting,Numerical,我的数组中有以下键: Array ( "Danger - 69" => Array(); "Fab - 67" => Array(); "Cat - 68" => Array(); ) 我希望它按字符串中的数字排序,而不是按字符串本身的第一个字母排序,如下所示: Array ( "Fab - 67" => Array(); "Cat - 68" => Array(); "Danger -
Array (
"Danger - 69" => Array();
"Fab - 67" => Array();
"Cat - 68" => Array();
)
我希望它按字符串中的数字排序,而不是按字符串本身的第一个字母排序,如下所示:
Array (
"Fab - 67" => Array();
"Cat - 68" => Array();
"Danger - 69" => Array();
)
您可以这样做:
<?php
$data = array (
"Danger - 69" => Array(),
"Fab - 67" => Array(),
"Cat - 68" => Array(),
);
uksort($data, function($a, $b) {
$pos = strrpos($a, '-');
if ($pos !== false) {
$a = (int) trim(substr($a,$pos+1));
}
$pos = strrpos($b, '-');
if ($pos !== false) {
$b = (int) trim(substr($b,$pos+1));
}
return $a - $b;
});
var_dump($data);