2011-08-20 99 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