簡體   English   中英

array_multisort() 和對象 - 警告“數組大小不一致”

[英]array_multisort() and Objects - Warning “Array sizes are inconsistent”

我有點好奇為什么下面會發出警告。

$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_multisort():數組大小不一致

有人可以給我比警告更多的信息嗎?

在作為變量傳遞給函數的數組中,您有不同的大小:

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]);

會做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM