2014-06-12 142 views
-2

如下我有一個數組:數組排序按姓名的PHP

Array (
[id] => Array 
    (
     [0] => 3321 
     [1] => 3318 
     [2] => 3320 
     [3] => 3319 
     [4] => 3324 
     [5] => 3322 
    ) 

[name] => Array 
    (
     [0] => Carla Taku 
     [1] => Honey-Pearl Te Moni 
     [2] => Monique Koroua 
     [3] => Summer Hellier 
     [4] => Wayne Kahukiwa 
     [5] => Natasha Merito 
    ) 

[courses] => Array 
    (
     [0] => 2 
     [1] => 1 
     [2] => 1 
     [3] => 1 
     [4] => 1 
     [5] => 1 
    ) 

) 

我想通過「名稱」進行排序,但我不能工作了如何做到這一點?由於其他代碼,我無法使其成爲多維的。我試過usort,ksort,array_sort,array_multisort,但我沒有足夠的經驗來排序。任何人有任何建議?請溫柔,我是新手。謝謝。 :)

+0

你的意思是排序所有三個基於排序一列或按姓氏排序? – Anthony

+0

@Anthony如果可能,我想根據「名稱」列對所有3個進行排序 – dpDesignz

+0

您的意思是根據ID,名稱,課程等關鍵字對此進行排序。請提供詳細信息如何排序,這將有助於 –

回答

4

我覺得array_multisort是你所追求的:

array_multisort($array['name'], $array['id'], $array['courses']); 
+0

你我的朋友是一個傳奇!謝謝!我無法弄清楚它應該如何訂購。 :) – dpDesignz

+0

好而簡單,而不是我的多行下面,你每天都會學到新的東西。 – Charles

1

昨天剛剛遇到分揀東西。希望這可以給你一些提示。

function SortByName($a,$b){ 
    return strcasecmp($a['name'], $b['name']); 
} 

usort($YourArray, 'SortByName'); 
+0

我已經試過這個,但我不斷收到錯誤'未定義的索引:名稱?但是如果我在函數改變後回顯數組? – dpDesignz

0

對不起,不使用特定的陣列,因爲我懶,哈哈。然而,這應該適合你,就像餡餅一樣容易。

$ar = array(
    array("10", 11, 100, 100, "a"), 
    array(1, 2, "2", 3, 1) 
); 

$temp = $ar[1]; 

$count = 0; 

asort($ar[0]); 
foreach ($ar[0] as $key => $value) { 
    $ar[1][$count] = $temp[$key]; 
    $count++; 
} 

print_r($ar);