[英]Sorting issues, and warnings using array_multisort() Array sizes are inconsistent
如您所見,二維數組如下:
Array ( [0] => Array ( [0] => Prishtina [1] => Bregu i Diellit [2] => 7 )
[1] => Array ( [0] => Prishtina [1] => Tasligje [2] => 4 )
[2] => Array ( [0] => Prishtina [1] => Bregu i Diellit [2] => 4 )
[3] => Array ( [0] => Prishtina [1] => Bregu i Diellit [2] => 3 )
[4] => Array ( [0] => Prishtina [1] => Bregu i Diellit [2] => 9 )
[5] => Array ( [0] => Prishtina [1] => Lakrishte [2] => 4 )
[6] => Array ( [0] => Prishtina [1] => Lakrishte [2] => 6 )
[7] => Array ( [0] => Prishtina [1] => Lakrishte [2] => 1 )
[8] => Array ( [0] => Prishtina [1] => Ulpiana [2] => 3 )
[9] => Array ( [0] => Prishtina [1] => Ulpiana [2] => 6 )
[10] => Array ( [0] => Prishtina [1] => Ulpiana [2] => 5 )
[11] => Array ( [0] => Prishtina [1] => Ulpiana [2] => 8 )
[12] => Array ( [0] => Prishtina [1] => Ulpiana [2] => 4 )
[13] => Array ( [0] => Prishtina [1] => Ulpiana [2] => 8 )
[14] => Array ( [0] => Prishtina [1] => Velania [2] => 2 )
[15] => Array ( [0] => Prishtina [1] => Velania [2] => 5 )
[16] => Array ( [0] => Prishtina [1] => Velania [2] => 1 )
[17] => Array ( [0] => Prishtina [1] => Dragodan [2] => 9 )
[18] => Array ( [0] => Prishtina [1] => Dragodan [2] => 7 )
[19] => Array ( [0] => Prishtina [1] => Dragodan [2] => 10 )
[20] => Array ( [0] => Prishtina [1] => Velania [2] => 11 )
[21] => Array ( [0] => Mitrovica [1] => Qender [2] => 5 )
[22] => Array ( [0] => Mitrovica [1] => Qender [2] => 3 )
[23] => Array ( [0] => Mitrovica [1] => Tavnik [2] => 6 )
[24] => Array ( [0] => Mitrovica [1] => Tavnik [2] => 9 )
[25] => Array ( [0] => Mitrovica [1] => Bair [2] => 10 )
[26] => Array ( [0] => Mitrovica [1] => Bair [2] => 12 )
[27] => Array ( [0] => ) )
我正在嘗試使用以下代碼按第 3 列排序:
foreach ($final_array as $roww){
$sort_column[]= $roww[2]; // 2 = your example
array_multisort($sort_column, $final_array);
}
但是,當我打印時:
for ($row = 0; $row < count($final_array); $row++)
{
foreach($final_array[$row] as $key => $value)
{
echo $value;
}
echo "<br/>";
}
當我打印時,它會排序並打印按第 3 列排序的數組,但是它給我帶來了這些警告
Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent in C:\xampp\htdocs\test\test.php on line 35
Notice: Undefined offset: 2 in C:\xampp\htdocs\test\test.php on line 34
我不確定為什么會發生這種情況,這對我來說沒有意義,一切正常,但是我需要這些警告!!
這是一個警告,因為在索引27
處存在對數組的未定義引用。 警告說您正在嘗試使用該值,但它不存在。
再看看你的數組
array_multisort() 如果用於一次對多個數組進行排序,則回顯警告,如果選擇執行多排序的所有數組的大小不同:
$arr = array(
'UK' => array(
'John' => 'Toyota',
'Alice' => 'Opel',
'Evan' => 'Fiat',
'Gregory' => 'Mitsubishi'
),
'Germany' => array(
'Bruno' => 'Opel',
'Andreas' => 'Mercedes',
'Klaus' => 'Porsche',
)
);
看? 兩個數組中的元素數量不同。 因此,即使選項不同,array_multisort 也會嘗試以相同的方式對這些數組進行排序:
array_multisort(
$arr['Germany'], SORT_ASC, SORT_NATURAL,
$arr['UK'], SORT_DESC, SORT_NUMERIC
);
這將打印如下警告:警告:array_multisort():數組大小在 (...)
當在兩個不相關的多維數組中使用相同的一個或多個鍵名時,會出現另一個會拋出“數組大小不一致”的情況。 如果在第二個多維數組中設置列之前清除鍵名,您仍然可以使用相同的鍵名。 如果不鼓勵這樣做,我很想知道原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.