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 № 1Vous 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;