高级数组排序

时间:2017-04-21 15:41:05

标签: php arrays

如果我有一个如下所示的数组:

$members = array(
array(
    'id'=>2,
    'name' => 'Bob',
    'status' => 1
    ),
array(
    'id'=>4,
    'name' => 'Fred',
    'status' => 1
    ),
array(
    'id'=>5,
    'name' => 'Sally',
    'status' => 0
    ),
array(
    'id'=>1,
    'name' => 'Fred',
    'status' => 1
    ),
array(
    'id'=>3,
    'name' => 'Jane',
    'status' => 0
    ),
);

如何对条目进行排序,使其按名称按字母顺序显示?

2 个答案:

答案 0 :(得分:0)

您可以定义自己的比较功能:

function cmp($a, $b)
{
    return strcmp($a['name'], $b['name']);
}

usort($myarray, "cmp");

有关PHP排序的更多信息,请参阅PHP documentation

答案 1 :(得分:0)

这里我们使用usortstrcmp来排序嵌套数组。与strcmp我们正在比较两个字符串。

Try this code snippet here

$array = array(
array(
    'id'=>2,
    'name' => 'Bob',
    'status' => 1
    ),
array(
    'id'=>4,
    'name' => 'Fred',
    'status' => 1
    ),
array(
    'id'=>5,
    'name' => 'Sally',
    'status' => 0
    ),
array(
    'id'=>1,
    'name' => 'Fred',
    'status' => 1
    ),
array(
    'id'=>3,
    'name' => 'Jane',
    'status' => 0
    ),
);

usort($array, function($data1,$data2){
    return strcmp($data1["name"], $data2["name"]);
});
print_r($array);