为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
鸿蒙传说 2023-04-21 09:51:10
我有这个数组:$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应该先
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

根据 ASCII 表 chr I在前,然后是a chr

ASCII 表

所以在这里你的数组实际上是按字母顺序排序以获得所需的结果你需要按降序对数组进行排序

<?php

$data = array(

    ['name' => 'Indor Swimming Pool'],

    ['name' => 'abracadabra'],

);

arsort($data);

?>

输出


Array

(

    [1] => Array

        (

            [name] => abracadabra

        )


    [0] => Array

        (

            [name] => Indor Swimming Pool

        )


)


查看完整回答
反对 回复 2023-04-21
?
慕森卡

TA贡献1806条经验 获得超8个赞

它按预期工作。这个顺序的原因是'a'实际上在ASCII中的'I'之后。



查看完整回答
反对 回复 2023-04-21
  • 2 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信