我有以下内容?
$array1 = array();
$array2 = array($Id, $Name, $Count);
array_push($array1, $array2);
我想在$ count上对array1进行排序?
sort()
和ksort()
不能满足我的要求?
有什么想法吗?
由于
编辑:
我正在输入身份证号码,姓名文字和姓名出现次数,所以我希望在数组顶部有最高计数的名字!!
答案 0 :(得分:2)
使用uasort()对回调函数进行排序。例如:
function sort_callback($a, $b) {
if ($a[2] == $b[2]) {
return 0;
}
return ($a[2] < $b[2]) ? -1 : 1;
}
uasort($array1, 'sort_callback');
答案 1 :(得分:1)
我对你提出这个问题的方式感到有点困惑,但是你想尝试做这样的事情吗?
function order_by($data, $field_name) {
$code = "return strnatcmp(\$a['$field_name'], \$b['$field_name']);";
usort($data, create_function('$a,$b', $code));
return $data;
}
所以,例如:
$array1 = array();
$array1[] = array('Id' => 1, 'Name' => 'YT', 'Count' => 30);
$array1[] = array('Id' => 2, 'Name' => 'Da5id', 'Count' => 56);
$array1[] = array('Id' => 3, 'Name' => 'Fido', 'Count' => 12);
$array1[] = array('Id' => 4, 'Name' => 'Hiro', 'Count' => 45);
echo "<pre>";
print_r($array1);
echo "</pre>";
$array2 = order_by($array1, 'Count');
echo "<pre>";
print_r($array2);
echo "</pre>";