无法通过属性名称对对象数组进行排序

问题描述 投票:0回答:1

我有这个数组:

$array = array(
    ['name' => 'Indor Swimming Pool'],
    ['name' => 'abracadabra'],
);

我想按字母顺序排序,所以我做了:

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

但是当我转储它时:

var_dump($array);

我得到:

array(2) {
  [0]=>
  array(1) {
    ["name"]=>
    string(19) "Indor Swimming Pool"
  }
  [1]=>
  array(1) {
    ["name"]=>
    string(11) "abracadabra"
  }
}

这不正确,abracadabra应该放在第一位

php
1个回答
0
投票

它按预期工作。此顺序的原因是,在ASCII中,“ a”实际上位于“ I”之后。

© www.soinside.com 2019 - 2024. All rights reserved.