实例演示: usort()二维数组的排序
echo '
三、键排序\值排序\二维数组的排序:(排序的结果会修改原始数组)
';echo '
';
//echo "
3.0 usort()二维数组的排序
";echo "
排序前的原始数据:
";$products=array(
['product'=>'ipone X','price'=>7199,'sales'=>28556],
['product'=>'ipone 8','price'=>4499,'sales'=>25642],
['product'=>'ipone 8 Plus','price'=>5499,'sales'=>6421],
['product'=>'荣耀 9i','price'=>1399,'sales'=>23455],
['product'=>'小米 8','price'=>2699,'sales'=>21054],
['product'=>'荣耀 10','price'=>2399,'sales'=>19890],
);
//排序前的结果
echo var_export($products);
echo '
';
//使用usort 根据销量进行排序
usort($products,function ($m,$n){ //第一个参数是数组,第二个参数是回调
$res=$m['sales'] - $n['sales'];
// $res=strcmp($m['sales'],$n['sales']);//$m,$n是二维数组中的一个元素,也是一个数组 //strcmp()函数,比较两个字符串(区分大小写)
switch ($res){
case ($res<0):
return -1; // 如果 string1
break;
case ($res>0):
return 1; //如果 string1 > string2,返回正数
break;
default:
return 0; //如果两个字符串相等0
}
});
echo "
按销量升序的结果数据:
";echo var_export($products,true);
echo '
';
//使用usort 根据价格进行排序
usort($products,function ($m,$n){ //第一个参数是数组,第二个参数是回调
return strcmp($m['price'],$n['price']); //strcmp()函数,比较两个字符串(区分大小写)
});
echo "
按销量升序的结果数据:
";echo var_export($products,true);
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:
排序方式:(排序的结果会修改原始数组)
sort值升序
rsort值降序
usort用户自定义排序(回调规则)
ksort键升序
krsort键降序