2011-08-20 135 views

回答

1

您可以使用usort此:http://php.net/manual/en/function.usort.php

,使您使用自己的函數來進行排序。

實施例:

$users = $your_array['contacts']; 
// or $users = $your_array->contacts; 

usort ($users, 'sort_by_lastname'); 

$your_array['contacts'] = $users; 
// or $your_array->contacts = $users; if it's json instead of array 

function sort_by_lastname($a, $b) 
{ 
    return strcmp($a['user']['basic']['lastname'], $b['user']['basic']['lastname']); 
} 
+0

聽起來很有趣!我看了一下它,我不能構建一個與我的數組一起工作的函數。你可以告訴我如何使用它嗎? –

+0

我可以將sort_by_lastname函數放在輔助函數中,然後在控制器中使用usort函數嗎?我如何使用代碼?我得到錯誤:使用未定義的常量sort_by_lastname - 假定'sort_by_lastname'。 –

+0

我現在得到錯誤:未定義索引:姓氏。 –

2

這一個工作的。經過試驗,測試和真實:

function sort_by_lastname($a, $b) { 
    $a = trim($a['user']['basic'][0]['lastname']); 
    $b = trim($b['user']['basic'][0]['lastname']); 
    return strcmp($a,$b); 
} 

uasort($array['contacts'],'sort_by_lastname'); 
+0

您可以使用strcmp而不是兩次比較 – RiaD

+0

@RiaD謝謝,忘記它在相等時也返回0。代碼已更新。 – AlienWebguy