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

PHP 地址数组的自然排序

PHP 地址数组的自然排序

PHP
慕神8447489 2022-08-19 15:52:16
我在对数组进行排序时遇到了一些问题。我调用了一个API,我得到的数据就是这样array:41 [  0 => StreetData {#251    +house: "1 Some Street"    +street: ""  }  1 => StreetData {#236    +house: "11 Some Street"    +street: ""  }  2 => StreetData {#236    +house: "4 Some Street"    +street: ""  }]我正在尝试做一个自然的排序,所以一直在尝试ksort($address->streets);这似乎不会改变任何事情。我所追求的基本上是一种自然的搜索。因此,应该首先考虑数字,然后考虑街道。因此,对于上述内容,我希望它是array:41 [  0 => StreetData {#251    +house: "1 Some Street"    +street: ""  }  1 => StreetData {#236    +house: "4 Some Street"    +street: ""  }  2 => StreetData {#236    +house: "11 Some Street"    +street: ""  }]因为 11 大于 4。这是一个非常模糊的例子,显然我希望有一个2,3等。那么,我怎样才能实现这种自然的排序呢?
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

我认为你需要和.strnatcmpusort


<?php

    class StreetData

    {

        public $house;

        public $street;


        public function StreetData($a, $b)

        {

            $this->house = $a;

            $this->street = $b;

        }

    }


    $arr = array(

        new StreetData("1 Some Street", ""),

        new StreetData("11 Some Street", ""),

        new StreetData("4 Some Street", ""),

    );


    function mySort($a, $b)

    {

        return strnatcmp($a->house, $b->house);

    }


    usort($arr, "mySort");


    var_dump($arr);

?>


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号