冒泡排序和自定义排序usort

分别使用usort和冒泡排序对数组按name的字符串长度排序

$arr = array(
    array('id' => 0, 'name' => '123833'),
    array('id' => 0, 'name' => 'aaa'),
    array('id' => 0, 'name' => 'albabaababa'),
    array('id' => 0, 'name' => '12356'),
    array('id' => 0, 'name' => '123abc')
);
//自定义排序usort对数组排序
function cmp($a,$b){     //$a,$b为数组的值两两进行比较
    $a = strlen($a['name']);
    $b = strlen($b['name']);
    if($a == $b) return 0;  
     return $a<$b ? -1 : 1;   //返回-1则交换顺序
}
usort($arr,"cmp");     //自定义排序,此处函数cmp需要加"",否则报错,不能写成cmp().
//冒泡排序法
for($i=0; $i<count($arr); $i++){
    for($j=0; $j<count($arr)-1; $j++){  //内层循环个数少一个
        if(strlen($arr[$j]) > strlen($arr[$j+1])){
            $tmp=$arr[$j];
            $arr[$j]=$arr[$j+1];
            $arr[$j+1]=$tmp;
        }
    }
}
echo "<pre>";
print_r($arr);
echo "</pre>";


你可能感兴趣的:(return,function,字符串)