我想在多维数组中应用ksort。目标是为每个级别排序数字索引。
我尝试做一个函数来执行此操作,但它不起作用。
function ksort_r( array &$array ){ /* ksort() for multi-dimensional array*/
ksort( $array );
foreach ( $array as $key=>$item ){
if( is_array( $item ) ){
ksort_r( $item );
}
}
}
**示例**
$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(),
)
)
)
答案 0 :(得分:1)
您忘记将foreach中的值作为参考传递:
foreach ( $array as $key=> &$item ) {
或者使用已排序的$ item更新数组索引:
ksort_r($item);
$array[$key] = $item;