Arrays PHP如何从数组的值1开始按ABC顺序对数组进行排序';界

Arrays PHP如何从数组的值1开始按ABC顺序对数组进行排序';界,arrays,multidimensional-array,Arrays,Multidimensional Array,好的,我有一个这样的数组: $my_array = array( 'hi' => array('description' => 'how are you?', 'title' => 'Hello', 'link' => 'http://mylink.com'), 'bye' => array('description' => array('Goodbye!', 'see ya'), 'title' => 'See Ya Later', '

好的,我有一个这样的数组:

$my_array = array(
    'hi' => array('description' => 'how are you?', 'title' => 'Hello', 'link' => 'http://mylink.com'),
    'bye' => array('description' => array('Goodbye!', 'see ya'), 'title' => 'See Ya Later', 'link' => 'http://mybyelink.com'),
    'not_now' => array('description' => array('I am away now!', 'gone'), 'title' => 'Away', 'link' => 'http://myawaylink.com'),
    'back' => array('description' => array('I am back now!', 'back', 'present'), 'title' => 'Here', 'link' => 'http://mybacklink.com'),
);
因此,我希望在php代码中对数组进行排序,以某种方式使其按照每个数组绑定的标题排序:
$my_数组['hi']['TITLE']
$my_数组['bye']['TITLE']
$my_数组['not_now']['TITLE']
,以及
$my_数组['back'['TITLE']
,但它必须保持数组的完整性,以便hi、bye、not_now和back中的所有值都是完全相同的,并且所有数组(如果其中有任何数组,也都是相同的)

因此,此数组需要根据标题按ABC顺序排序,因此应按此顺序返回:

$my_array = array(
    'not_now' => array('description' => array('I am away now!', 'gone'), 'title' => 'Away', 'link' => 'http://myawaylink.com'),
    'hi' => array('description' => 'how are you?', 'title' => 'Hello', 'link' => 'http://mylink.com'),
    'back' => array('description' => array('I am back now!', 'back', 'present'), 'title' => 'Here', 'link' => 'http://mybacklink.com'),
    'bye' => array('description' => array('Goodbye!', 'see ya'), 'title' => 'See Ya Later', 'link' => 'http://mybyelink.com'),
);
标题按ABC顺序排列在这里:走开,你好,这里,待会儿见

我如何才能做到这一点,同时保持阵列与其中所有子阵列的完整性


谢谢大家:)

您想使用uasort函数和用户定义的排序函数,在函数中使用strnatcmp。下面是您的代码示例:

function titleSort($a, $b) {
    return strnatcmp($a['title'], $b['title']);
}

uasort($my_array, 'titleSort');

如果需要,您可以使用is_array在输入变量上添加一些健全性检查,以确保它们是数组。

哇,非常感谢,这正是我需要的!我不明白为什么$a['title']和$b['title']完全相同,但又不熟悉PHP的
uasort
函数。$a和$b究竟代表什么?数组的不同边界-$a和$b表示要比较的数组的两个项。因此PHP迭代给定的数组,在本例中为$my_数组,并将每个数组元素相互比较。因此,$a是$my_数组的一个元素,$b是该数组的另一个比较元素。您的$my_数组是多维的,因此$a也是一个数组,其中一个键是'title',与$b相同。我们可以比较那个子数组中的任何东西。当然,这假设$my_数组的每个元素都是以相同的方式形成的,即是一个具有“title”键的数组。