2011-08-26 130 views
-9

Possible Duplicates:
How to sort a multi dimensional array in PHP alphabetically?
PHP : Sort array alphabetically如何按字母顺序排列PHP中的数组?

我正在开发一个使用Codeigniter和Phils RESTserver的API。 在此API中,我访问包含用户的数据库。

我想在输出之前对这些用户进行排序。 我该怎么做?我尝试了下面的代码,但不起作用。

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

这是我的JSON格式的数据。

http://pastie.org/2402372

如何可以改变上述这种输出(在PHP阵列格式时,不JSON)排序。

感谢您的帮助!

+5

-1研究。 'array_sort()' –

+1

初学者,你应该比较$ a [...]和$ b [...]。 – Lars

+2

为什么不使用数据库对它们进行排序? –

回答

-2

在问这里之前检查PHP.net。快速搜索会止跌回升PHP的asort()功能:http://php.net/asort

+1

真的吗?你能告诉我们一些示例代码吗? – PeeHaa

+0

我不会为你做你的工作 –

+1

@andy如果你保持这种态度,你将会受到3位数的代表分数的困扰。我们是一个基于示例的社区,对于你所知道的所有OP来说,他都尝试了在php.net上可以找到的每一种排序功能,并且只是不够先进,无法通过子数组值对数组进行排序。 “ – AlienWebguy

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

    if ($a == $b) { 
     return 0; 
    } 

    return ($a < $b) ? -1 : 1; 
} 

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

+1这实际上起作用:http://pastie.org/2434498 – Maverick

+0

现在变得非常接近。这是数组在转换为JSON对象之前的样子。 http://pastie.org/2435409。我得到这个错误:uasort()期望参数1是数组,给出null。 –

+0

我也得到这个错误:致命错误:不能使用stdClass类型的对象作为数组。 –