/ / Ksort PHP pour un tableau multi-dimensionnel? - php, tri, tableau multidimensionnel

PHP ksort pour tableau multidimensionnel? - php, tri, tableau multidimensionnel

Je voudrais appliquer ksort dans un tableau multi-dimensionnel. L'objectif est de trier l'index numérique pour chaque niveau.

J'ai essayé de faire une fonction pour le faire mais cela ne fonctionne pas.

function ksort_r( array &$array ){   /* ksort() for multi-dimensional array*/
ksort( $array );
foreach ( $array as $key=>$item ){
if( is_array( $item ) ){
ksort_r( $item );
}
}
}

** Exemple **

$array = array(
1 => array(
"columns" => array(
2 => array(),
0 => array(),
1 => array(),
)
),
0 => array(
"columns" => array(
2 => array(),
1 => array(),
0 => array(),
)
)
)

output wishes :

array(
0 => array(
"columns" => array(
0 => array(),
1 => array(),
2 => array(),
)
),
1 => array(
"columns" => array(
0 => array(),
1 => array(),
2 => array(),
)
)
)

Réponses:

1 pour la réponse № 1

Vous avez également oublié de passer la valeur dans foreach comme référence:

foreach ( $array as $key=> &$item ) {

Ou mettez à jour l'index du tableau avec l'élément $ trié:

ksort_r($item);
$array[$key] = $item;