【发布时间】:2014-01-09 07:04:59
【问题描述】:
我使用array_multisort 函数完成了一些任务。在编写脚本的过程中,我做了一个var_dump,得到了$mainArray 的不同结果,具体取决于PHP 版本。代码如下:
$mainArray = array(
0 =>array(
"key1" => array(7,4,5),
'key2' => array('cc','aa')
)
);
foreach($mainArray as $secondArray){
foreach($secondArray as $array){
array_multisort($array);
}
}
var_dump($mainArray);
4.3.10 - 4.4.9, 5.1.1 - 5.5.7 的输出:
array(1) {
[0]=> array(2) {
["key1"]=> array(3) {
[0]=> int(7)
[1]=> int(4)
[2]=> int(5) }
["key2"]=> array(2) {
[0]=> string(2) "cc"
[1]=> string(2) "aa" }
}
}
但是4.3.0 - 4.3.9, 5.0.0 - 5.0.5 的输出我得到了排序数组:
array(1) {
[0]=> array(2) {
["key1"]=> array(3) {
[0]=> int(4)
[1]=> int(5)
[2]=> int(7) }
["key2"]=> array(2) {
[0]=> string(2) "aa"
[1]=> string(2) "cc" }
}
}
我知道array_multisort($array) 不会影响$mainArray 但是:
我真的不明白为什么在第二个变体中它被排序,而在第一个变体中没有。而且,我应该总是检查不同 php 版本的脚本吗?
Here你可以查看脚本
【问题讨论】:
-
我宁愿说这是一些旧版本 PHP 中的错误...
-
将
array_multisort与单个数组一起使用的原因是什么? -
这只是部分代码有问题,在主脚本中有数组,我合并了它们