PHP中的二维数组通常在数据处理中使用。在有些情况下,我们需要对二维数组进行排序以满足需求。PHP提供的二维数组排序方法有array_multisort和usort两种。
array_multisort函数
array_multisort() 函数可以同时对多个数组进行排序,还可以按照不同的方式排序。下面是一个对二维数组按照某个键值进行排序的例子:
$data = array(
array('name' => 'Tom', 'age' => 18, 'height' => 175),
array('name' => 'Mike', 'age' => 20, 'height' => 185),
array('name' => 'Jack', 'age' => 21, 'height' => 165),
);
$name = array_column($data, 'name');
$age = array_column($data, 'age');
$height = array_column($data, 'height');
array_multisort($name, SORT_ASC, $age, SORT_DESC, $height, SORT_ASC, $data);
print_r($data);
上面的示例中,我们通过array_column()函数获取了数组中的'Name'、'Age'、'Height'三个键所对应的值作为排序依据。然后我们利用array_multisort()函数,按照'Name'升序、'Age'降序、'Height'升序的顺序排序了数组$Data,并打印输出结果。
usort函数
usort() 是 PHP 中的一个函数,它的作用是对给定的数组按照用户自定义的方式进行排序。下面让我们来看一个实现二维数组按照键值排序的例子:
$data = array(
array('name' => 'Tom', 'age' => 18, 'height' => 175),
array('name' => 'Mike', 'age' => 20, 'height' => 185),
array('name' => 'Jack', 'age' => 21, 'height' => 165),
);
usort($data, function($a, $b) {
return $a['age'] < $b['age'] ? true : false;
});
print_r($data);
上面的示例中,我们用usort()函数自定义了一个回调函数,根据键值'Age'的大小来进行排序,并打印输出结果。
总的来说,以上两种方法都可以实现对二维数组的排序。array_multisort()函数可以同时对多个数组进行排序,排序效率较高;而usort()函数灵活性高,可以自定义排序方式,使用较为灵活。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php二维数组排序方法(array_multisort usort) - Python技术站