Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中按字母顺序对多维数组排序?_Php_Arrays_Codeigniter_Sorting - Fatal编程技术网

如何在PHP中按字母顺序对多维数组排序?

如何在PHP中按字母顺序对多维数组排序?,php,arrays,codeigniter,sorting,Php,Arrays,Codeigniter,Sorting,我的API是用PHP(Codeigniter)编写的,它根据选定的关键字输出用户。在将数组输出到JSON之前,如何按字母顺序对其排序 这是输出: 感谢所有的投入 您可以使用usort进行以下操作: 这使您能够使用自己的函数进行排序 例如: $users = $your_array['contacts']; // or $users = $your_array->contacts; usort ($users, 'sort_by_lastname'); $your_array['con

我的API是用PHP(Codeigniter)编写的,它根据选定的关键字输出用户。在将数组输出到JSON之前,如何按字母顺序对其排序

这是输出:


感谢所有的投入

您可以使用usort进行以下操作:

这使您能够使用自己的函数进行排序

例如:

$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']);
}

您可以使用usort进行以下操作:

这使您能够使用自己的函数进行排序

例如:

$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']);
}

这个有效。久经考验,真实可靠:

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');

这个有效。久经考验,真实可靠:

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');


听起来很有趣!我对它进行了一些研究,但我无法构造一个与我的数组一起工作的函数。您能告诉我如何使用它吗?我能在助手中放置sort_by_lastname函数,然后在控制器中使用usort函数吗?如何使用代码?我得到一个错误:使用未定义的常量sort_by_lastname-假定为'sort_by_lastname'。恐怕仍然有问题。@Jonathan Clark:也许我们最好去聊天看看问题出在哪里,为什么不只是
usort($your_array['contacts','sort_by_lastname')?听起来很有趣!我对它进行了一些研究,但我无法构造一个与我的数组一起工作的函数。您能告诉我如何使用它吗?我能在助手中放置sort_by_lastname函数,然后在控制器中使用usort函数吗?如何使用代码?我得到一个错误:使用未定义的常量sort_by_lastname-假定为'sort_by_lastname'。恐怕仍然有问题。@Jonathan Clark:也许我们最好去聊天看看问题出在哪里,为什么不只是
usort($your_array['contacts','sort_by_lastname')?为什么不在您的模型查询中直接排序?我不能。数组是不同查询的组合。我需要按名字排序。为什么不在Model的查询中直接排序?我不能。数组是不同查询的组合。我需要按名字排序。您可以使用strcmp而不是两次comparation@RiaD谢谢,忘了它在相等时也返回0。代码已更新。您可以使用strcmp而不是两次comparation@RiaD谢谢,忘了它在相等时也返回0。代码已更新。