array_multisort() 和对象 - 警告"数组大小不一致"



我有点好奇为什么下面会抛出警告。

$obj->data = array(...); // note there are values stored (size 607)
var_dump(sizeof($obj->data)); // 607
array_multisort(
array_column($obj->data , 'col1'), SORT_ASC,
array_column($obj->data , 'col2'), SORT_ASC,
array_column($obj->data , 'col3'), SORT_ASC, 
$obj->data 
);
var_dump(sizeof($obj->data)); // 607

我收到的警告状态为

警告:array_multsort((:数组大小不一致

有人能给我比警告更多的信息吗?

作为变量传递给函数的数组大小不同:

array_multisort(
array_column($obj->data , 'col1'), SORT_ASC,
array_column($obj->data , 'col2'), SORT_ASC,
array_column($obj->data , 'col3'), SORT_ASC, 
$obj->data 
);

可能array_column($obj->data , 'col1')(或col2或col3(具有比$obj->data更少的元素

例如:

$ar = array(
array(1,2),
array(2,1)
);
array_multisort($ar[0], $ar[1]);

没有发出这个警告,但是

$ar = array(
array(1,2,3),
array(2,1)
);
array_multisort($ar[0], $ar[1]);

会的。

最新更新