matriz multidimensional de PHP ordenada por un campo

Para ordenar por otro campo en una matriz multidimensional, puede usar la función usort combinada con una función de comparación personalizada.

Aquí hay un código de muestra:

<?php
// 定义一个多维数组
$multidimensionalArray = array(
    array('name' => 'John', 'age' => 25),
    array('name' => 'Mary', 'age' => 30),
    array('name' => 'David', 'age' => 20)
);

// 按age字段进行排序
usort($multidimensionalArray, function($a, $b) {
    
    
    if ($a['age'] == $b['age']) {
    
    
        return 0;
    }
    return ($a['age'] < $b['age']) ? -1 : 1;
});

// 打印排序后的数组
print_r($multidimensionalArray);
?>

Ejecutando el código anterior, la salida será:

Array
(
    [0] => Array
        (
            [name] => David
            [age] => 20
        )

    [1] => Array
        (
            [name] => John
            [age] => 25
        )

    [2] => Array
        (
            [name] => Mary
            [age] => 30
        )

)

En el código anterior, la función usort se usa para ordenar la matriz multidimensional. La función anónima se utiliza para comparar el campo de edad de dos elementos de matriz. Devuelve 0 si las edades de los dos elementos del arreglo son iguales. Devuelve -1 si la edad del primer elemento de la matriz es menor que la edad del segundo elemento de la matriz, 1 en caso contrario. Finalmente, la matriz ordenada se imprime utilizando la función print_r.

Puede modificar la función de comparación para ordenar por diferentes campos según sus necesidades.

Supongo que te gusta

Origin blog.csdn.net/qq_27487739/article/details/131527010
Recomendado
Clasificación