您尚未t
在代码中定义为数组,除非您没有值,否则这应该不是问题(但在这种情况下,您会收到警告)。
至于multisort,正确的语法是
array_multisort($a, $b, $t, SORT_NUMERIC, SORT_DESC);
但不是很清楚你想要做什么,并且以不同的方式组织值的解析可能更方便(例如,在多维数组中而不是多个数组中,或者使用自定义排序函数)。
<?php
$a = array();
$b = array();
$t = array();
$values = array("5/7/12","1/9/3");
foreach($values as $key => $value)
{
list($a[$key], $b[$key], $t[$key]) = explode('/', $value);
}
array_multisort($a, $b, $t, SORT_NUMERIC, SORT_DESC);
print_r($a);
print_r($b);
print_r($t);
?>
以及无法在不更改数组位置的情况下对其进行排序。
这是设计使然。对您传递的第一个array_multisort
数组进行排序,即. 其他数组中的相应元素将根据项目在 中的位置进行排序。$a
$a
例如,如果 的第一个元素$a
是最小的,它将被放在最后SORT_DESC
。但是由于第一个元素$a
是最后一个,所以最后一个元素$t
也将放在最后一个内$t
,不管它的值是什么。
如果你想$t
“统治”排序,你必须把它放在第一位。
如果您希望所有三个数组都独立排序,则不能使用array_multisort
.