5
下面這段代碼旨在創建一個多級數組,然後將其打印出來,然後再打印出來,再打印出來,然後對數組進行排序。排序函數是否考慮多級數組中的葉節點?
$arr=array(
array(
array('a','b','c')
),
array(
array('d','e','f')
),
array(
array('g','h','i')
),
);
print_r($arr);
shuffle($arr);
print_r($arr);
sort($arr);
print_r($arr);
現在我觀察到,當使用shuffle()
奇怪的東西,它只是混洗被打亂數組的索引,它不洗牌,最內部的元素a,b,c
別的東西,但是當該使用sort()
函數時,它將數組排序回到正常狀態,並且葉節點返回到字母順序。爲什麼會發生?
下面是示例輸出: * 原始數組 *
Array
(
[0] => Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
)
)
[1] => Array
(
[0] => Array
(
[0] => d
[1] => e
[2] => f
)
)
[2] => Array
(
[0] => Array
(
[0] => g
[1] => h
[2] => i
)
)
)
拋去陣列
Array
(
[0] => Array
(
[0] => Array
(
[0] => g
[1] => h
[2] => i
)
)
[1] => Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
)
)
[2] => Array
(
[0] => Array
(
[0] => d
[1] => e
[2] => f
)
)
)
排序後的數組
Array
(
[0] => Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
)
)
[1] => Array
(
[0] => Array
(
[0] => d
[1] => e
[2] => f
)
)
[2] => Array
(
[0] => Array
(
[0] => g
[1] => h
[2] => i
)
)
)