例子 2. 使用多维数组的 usort() 例子 <?php
function cmp ($a, $b) {
return strcmp($a["fruit"], $b["fruit"]);
}$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";usort($fruits, "cmp");while (list ($key, $value) = each ($fruits)) {
echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>
当排序多维数组时,$a 和 $b 包含到数组第一个索引的引用。 本例将显示: $fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons
function cmp ($a, $b) {
return strcmp($a["fruit"], $b["fruit"]);
}$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";usort($fruits, "cmp");while (list ($key, $value) = each ($fruits)) {
echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>
当排序多维数组时,$a 和 $b 包含到数组第一个索引的引用。 本例将显示: $fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons
我的程序如下,我也是在这里找到的这个方法可是测试居然不成功。代码如下。
function myfun1($a,$b){
return (-strcmp($a[num_reads], $b[num_reads]));
}$arr1 = Array (
Array (id => 1,blog=>'数码博客',about=>'网络聊天',num_reads=> '188' ) ,
Array (id=> 2, blog => 'simple',about =>'', num_reads =>' 3 '),
Array (id=> 3, blog => 'foxshare_blog挑战无限',about =>'', num_reads => '109'),
Array (id => 5 ,blog=>' PHP', about=> 'php技术交流区 ',num_reads=> '3' ),
Array (id => 6 ,blog =>' test' ,about =>'', num_reads => '1' )
) ;
//echo '<br>';
//print_r($arr1);
usort($arr1,"myfun");
echo '<br>------------- result ------------<br>';
print_r($arr1);
return (-strcmp($a[num_reads], $b[num_reads]));
}$arr1 = Array (
Array (id => '1',blog => '数码博客',about=>'网络聊天',num_reads=>'188') ,
Array (id => '2',blog => 'simple',about =>'', num_reads =>'3'),
Array (id => '3',blog => 'foxshare_blog挑战无限',about =>'',num_reads =>'109'),
Array (id => '5',blog => ' PHP',about=> 'php技术交流区 ',num_reads=>'3'),
Array (id => '6',blog => ' test',about =>'', num_reads =>'1')
) ;
usort($arr1,"myfun1");
echo '<br>------------- result ------------<br>';
print_r($arr1);
return (-strcmp($a[num_reads], $b[num_reads]));
改成
if ($a[num_reads]==$b[num_reads]) return 0;
return ($a[num_reads]>$b[num_reads])? -1:1; 是数字比较就不要用strcmp
(
[0] => Array
(
[id] => 1
[blog] => 数码博客
[about] => 网络聊天
[num_reads] => 188
) [1] => Array
(
[id] => 2
[blog] => simple
[about] =>
[num_reads] => 3
) [2] => Array
(
[id] => 3
[blog] => foxshare_blog挑战无限
[about] =>
[num_reads] => 109
) [3] => Array
(
[id] => 5
[blog] => PHP
[about] => php技术交流区
[num_reads] => 3
) [4] => Array
(
[id] => 6
[blog] => test
[about] =>
[num_reads] => 1
))
<br>------------- result ------------<br>Array
(
[0] => Array
(
[id] => 5
[blog] => PHP
[about] => php技术交流区
[num_reads] => 3
) [1] => Array
(
[id] => 1
[blog] => 数码博客
[about] => 网络聊天
[num_reads] => 188
) [2] => Array
(
[id] => 3
[blog] => foxshare_blog挑战无限
[about] =>
[num_reads] => 109
) [3] => Array
(
[id] => 6
[blog] => test
[about] =>
[num_reads] => 1
) [4] => Array
(
[id] => 2
[blog] => simple
[about] =>
[num_reads] => 3
))