php中包含两个数组元素的数组,每个元素都包含键值对。怎么排序?
时间: 2023-12-10 07:41:55 浏览: 58
可以使用PHP中的usort()函数对数组进行排序。usort()函数需要传入两个参数,第一个参数是要排序的数组,第二个参数是排序规则的回调函数。在回调函数中,可以使用比较器方法按照自定义规则进行排序。例如,如果我想按照数组中某个键的值进行排序,可以编写如下代码:
```
function cmp($a, $b) {
if ($a['key'] == $b['key']) {
return 0;
}
return ($a['key'] < $b['key']) ? -1 : 1;
}
$arrays = array(
array('key' => 4, 'value' => 'value4'),
array('key' => 2, 'value' => 'value2'),
array('key' => 1, 'value' => 'value1'),
array('key' => 3, 'value' => 'value3')
);
usort($arrays, 'cmp');
```
在以上代码中,我定义了一个$cmp()函数,并将它作为usort()函数的第二个参数传入。该函数接受两个参数$a和$b,它们都是要排序的数组元素。在比较器方法中,我按照数组中'key'键的值进行升序排列,并返回-1、0或1表示$a是否小于、等于或大于$b。随后,我调用usort()函数将$arrays数组按照自定义规则进行排序。排序后,$arrays变量将按照第一个数组元素的键值升序排列,最终结果将为
```
array(
array('key' => 1, 'value' => 'value1'),
array('key' => 2, 'value' => 'value2'),
array('key' => 3, 'value' => 'value3'),
array('key' => 4, 'value' => 'value4')
)
```
阅读全文