分别使用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>";