首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP:我有一个关联数组(int => object),想要对它进行排序

问题: 我有一个关联数组 (int => object),想要对它进行排序。

回答:

在 PHP 中,关联数组是一种以键值对形式存储数据的数据结构,其中每个键都对应一个值。您想要对这样的数组进行排序。在 PHP 中,可以使用 ksort() 函数对关联数组进行排序。

ksort() 函数按照给定键名对关联数组进行排序。默认情况下,按照升序排序。以下是一个示例:

代码语言:php
复制
<?php
$arr = [
    1 => new stdClass(),
    2 => new stdClass(),
    3 => new stdClass(),
    4 => new stdClass(),
    5 => new stdClass(),
];

ksort($arr);

var_dump($arr);

输出:

代码语言:txt
复制
array(5) {
  [1] =>
  object(stdClass)#1 (1) {
    ["id"]=>
    int(1)
  }
  [2] =>
  object(stdClass)#2 (1) {
    ["id"]=>
    int(2)
  }
  [3] =>
  object(stdClass)#3 (1) {
    ["id"]=>
    int(3)
  }
  [4] =>
  object(stdClass)#4 (1) {
    ["id"]=>
    int(4)
  }
  [5] =>
  object(stdClass)#5 (1) {
    ["id"]=>
    int(5)
  }
}

ksort() 函数按升序对关联数组进行排序。如果您需要按照降序排序,可以使用 krsort() 函数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP的SPL扩展库(二)对象数组数组迭代器

PHP的SPL扩展库(二)对象数组数组迭代器 在 PHP 中,数组可以说是非常强大的一个数据结构类型。甚至我们可以把 PHP 中的数组说成是 PHP 的灵魂,而且这么说一点都不夸张。...数组是一种基本的结构类型,Int 、String 这一类的类型是同一级别的,而今天我们要学习的,则是一种将对象当作数组来操作的概念。我们先学习它们的使用,最后再来说说这么做什么用。...的使用非常简单,数组的主要区别就是它是一个真实的对象,不是基本的数据结构。也就是说,对于 is_object() 和 is_array() 来说,它们的结果会有不同。...实例化对象数组并赋值 除了直接传递一个构造参数外,我们还可以实例化一个空的对象数组,然后像操作普通数组一样操作。...现在还有没有这种写法不知道,但当时确实是有过这么一种写法。如果要对应到 PHP 中的话,我们就可以使用 ArrayObject 这些功能类来实现。

1.3K20

PHP语言中使用JSON

目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持写过一篇《数据类型和JSON格式》,探讨的设计思想。...今天,总结一下PHP语言对的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识。...二、索引数组关联数组 PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array...通常情况下,json_decode()总是返回一个PHP对象,而不是数组。...int(4)     ["e"] => int(5)      } 如果想要强制生成PHP关联数组,json_decode()需要加一个参数true:   $json = '{"a":1,"b":2,"

98830
  • Go 语言基础入门教程 —— 数据类型篇:字典类型的遍历和排序

    for key, value := range testMap { fmt.Println(key, value) } 这种遍历模式和我们在 PHP 中通过 foreach 对关联数组进行遍历很像...关联数组中,内置数组函数 array_flip 来实现类似的功能,在 Go 语言中,我们需要手动编写代码来实现,比如我们要对调 testMap 字典的键值,可以这么做: invMap := make...fmt.Println(k, v) } 上述代码的打印结果是: 3 three 1 one 2 two 字典排序 在上篇教程中,我们提到过 Go 语言的字典不同于 PHP关联数组,是一个无序集合,如果你想要对字典进行排序...,可以通过分别为字典的键和值创建切片,然后通过对切片进行排序来实现,换句话说,如果要对字典按照键进行排序,可以这么做: keys := make([]string, 0) for k, _ := range...如果要对字典按照值进行排序,可以这么做: values := make([]int, 0) for _, v := range testMap { values = append(values,

    68820

    PHP 关联数组的十大使用技巧

    关联数组PHP 中使用最广泛的一种数据类型,PHP 内置多种操作关联数组的函数,对开发人员来说,要从中找出最有效,最合适自己所开发程序的方法来操纵这些数组。...1、添加数组元素 PHP是一种弱类型语言,这意味着你不需要显示声明一个数组及其大小,相反,你可以同时声明并填充数组。...() 函数按键对关联数组进行排序。...7、随机排序 如果要对关联数组随机排序,可以使用 shuffle() 函数来实现 shuffle($weixin_card_types); 如果不需要打乱数组顺序,只是随机选择一个值,那么使用 array_rand...; } 很少有人知道这个函数也可以确定一个数组键是否存在,在这一点上,和 array_key_exists() 函数的功能一样。

    80360

    WordPress 内置的数组处理相关函数大全

    我们使用 WordPress 开发的时候,很大一部分的工作和数组处理有关,WordPress 本身也内置了一些非常方便的数组处理函数,今天给大家罗列一下,也方便自己以后写代码的时候查询。...wp_array_slice_assoc wp_array_slice_assoc( $array, $keys ) 根据给定的键值列表从关联数组中获取相关的子数组。...) 这个函数就是先 wp_filter_list 操作,然后如果 field 参数值不为空,则再进行 wp_list_pluck 操作,不过没有 wp_list_pluck 的 index_key...)列表进行排序,最后一个参数 $preserve_keys 用于是否保持原来的 key。...关于 WordPress 内置的函数,目前收集到就是那么多,如果你发现什么好的函数也可以留言告诉

    1.4K30

    Java 比较器

    比较器 Arrays 类 主要功能: 完成所有与数组有关的操作的工具类 二分查找: 在一个有序的数字序列中进行二分查找 public static int binarySearch(数据类型 [] a...(Arrays.equals(dateA, dateB)); } } 比较器:Comparable * 对象数组排序 public static void sort(Object [] a); Arrays...(books)); } } 要对某个对象进行数组排序,对象所在的类一定要实现 Comparable 接口,覆写compareTo()方法。...二叉树结构:BinaryTree 数,是一种比链表更为复杂的概念,本质也属于动态对象数组,但是与链表相比,数更有利于数据进行排序。...接口的类,进行改变; 实现该接口,创建一个“工具类”,实现Book类对象的排序需求 class Book { private String title ; private double price

    1.2K20

    C#中的泛型

    比如说,当你在一个集合类型(例如ArrayList)的实例上调用Sort()方法对进行排序时,.Net框架在底层就应用了快速排序算法。....但是请大家思考一个问题:如果由你来实现一个排序算法,你会怎么做?...直到不久之后,我们需要对一个byte类型的数组进行排序,而我们上面的排序算法只能接受一个int类型的数组,尽管我们知道它们是完全兼容的,因为byte类型是int类型的一个子集,但C#是一个强类型的语言,...美好的事情总是很难长久,我们很快需要对一个char类型的数组进行排序,我们当然可以仿照byte类型数组的作法,继续采用复制粘贴大法,然后修改一下方法的签名。...Book类型的数组,然后试着使用上一小节定义的泛型类来对进行排序代码应该是这样子的: Book[] bookArray = new Book[2]; Book book1 = new Book

    1.2K70

    php数据类型转换解析(基本数据类型)2原力计划来了,哈哈哈

    要创建object变量,需要使用 new 关键字。 数组数组可以在一个变量中存储多个值。 数组又分索引数组关联数组。 两种特殊类型分别是: NULL:NULL 值表示变量没有值。...是吧 记住了,兄嘚,int的全称叫做integer哈,布尔型的简称叫做bool哈, 记住了,兄弟们,核心来了,string是类型哈,String是函数哈(这个是php的核心组成部分哈)反正你把看成一个字符串函数就行了...php var_dump(-PHP_INT_MAX-1); ?> ? <?php var_dump(-PHP_INT_MAX-2); ?> ?...里,四种方式可以表示一个字符串。...在PHP中,使用\(反斜杠)来转义字符。 $test = "输出一个引号,\“引号"; 输出的结果中,就有了引号本身。

    69920

    Java集合框架

    前言 资源整合来源与网络以及自身的学习总结,如有侵权请联系删除~ 写的不对的地方,请各位在下方评论指出,一起学习进步~ 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作...,就要对对象进行存储。...(不包括)之间的部分视图,返回类型不要进行任何操作 E set(int index, E element) 设置索引index位置的元素 int indexOf(Object o) 从头查找元素...三,弱引用 弱引用的引用强度比软引用要更弱一些,无论内存是否足够,只要 JVM 开始进行垃圾回收,那些被弱引用关联的对象都会被回收。...(List,intint):将指定 list 集合中的 i 处元素和 j 处元素进行交换 查找、替换 Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素

    1.3K10

    盘点Arrays工具类的导包及其常用方法

    大家好,是Java进阶者!...一、Arrays工具类 在java的util包中提供了一个Arrays工具类用来操作数组的,提供了许多的静态方法,例如数组所有元素进行排序,按从小到大的顺序、查找元素等。...使用时需要导包如下所示: import java.util.Arrays 二、使用Arrays的sort()方法排序 1.在以前学数组的时候,要对数组进行排序就需要定义一个排序的方法,就比较麻烦,在Arrays...工具类的静态方法中提供了sort()方法,这个方法作用是按数组所有元素进行排序,按从小到大的顺序。...("\n数组排序后元素6的索引值是:"+index); } } 运行的结果如下所示: 四、使用Arrays的Arrays.fill(Object[] array,int from,int to,Object

    48230

    【说站】php数组排序并保持索引关系

    php数组排序并保持索引关系 1、说明 uasort是数组中的值通过用户自定义的比较函数排序,并保持索引关联。主要是用在需要按照自定义的方法并且保留索引关系对多维数组排序上。...2、语法 uasort(array,myfunction); 3、参数 Array, 规定要排序数组  Myfunction,定义可调用函数的字符串 4、返回值 成功则返回 TRUE,失败则返回 FALSE...1 : -1; //-1向前即向上,往前走         }); 对于排序中的函数,我们的可选范围还是很大的。...如果想要对比较函数进行排序,uasort是个不错的选择,因为它还能保持索引的关系,在多维数组中我们会经常看到排序使用。...以上就是php数组排序并保持索引关系的方法,相信大家已经对uasort函数的基本方法有所掌握,在遇到类似排序需求的时候,可以优先考虑这种函数的使用。

    69830

    优秀程序员必备的四项能力

    再以每个整数区间的起始数字对这些区间进行排序排序后的区间如下 [1, 5] [6, 10] [11, 15] [16, 20] ......,或者说哪些可以优化的空间,这就引入了程序员需要具备的第三项能力: 代码要有足够的健壮性 代码要有足够的健壮性 仔细看上文的代码,两个地方潜在隐患,一个是 length 可能是负数,而显然数组的长度不可能是负数...0 过于严苛了,但是是人就会犯错误,这里也是为了强调我们对异常情况的处理要到位,说到代码的健壮性,这里再多说几句,在创业初期司主要用的是 php,主要是创业团队追求快,用 PHP 这种弱类型语言开发确实效率高...,司去年把大部分的服务都 Java 化了,近年来不少人唱衰 Java,但 Java 的安全,稳定性以及强大的生态能力注定了的长久生命力。...代码写成这样看起来确实完美了,还能再优化吗,注意上文中的代码只适用于 int数组,如果用二分查找法进行区间查找具有通用性,比如我们针对 short 或 long 型等类型的数组进行查找就无能为力了

    48830

    优秀程序员必备的四项能力

    再以每个整数区间的起始数字对这些区间进行排序排序后的区间如下 [1, 5] [6, 10] [11, 15] [16, 20] ......代码要足够的健壮 仔细看上文的代码,两个地方潜在隐患,一个是 length 可能是负数,而显然数组的长度不可能是负数,也就是说对这种异常数据应该抛异常。...0 过于严苛了,但是是人就会犯错误,这里也是为了强调我们对异常情况的处理要到位,说到代码的健壮性,这里再多说几句,在创业初期司主要用的是 php,主要是创业团队追求快,用 PHP 这种弱类型语言开发确实效率高...,司去年把大部分的服务都 Java 化了,近年来不少人唱衰 Java,但 Java 的安全,稳定性以及强大的生态能力注定了的长久生命力。...代码写成这样看起来确实完美了,还能再优化吗,注意上文中的代码只适用于 int数组,如果用二分查找法进行区间查找具有通用性,比如我们针对 short 或 long 型等类型的数组进行查找就无能为力了

    37530

    Iterator,fail-fast机制与比较器

    如下: 对于数组我们是使用下标来进行处理的: int[] arrays = new int[10]; for(int i = 0 ; i < arrays.length ; i++){...三、fail-fast解决办法 通过前面的实例、源码分析,各位已经基本了解了fail-fast的机制,下面就产生的原因提出解决方案。...ArrayList 的一个线程安全的变体,其中所有可变操作(add、set 等等)都是通过对底层数组进行一次新的复制来实现的。 该类产生的开销比较大,但是在两种情况下,非常适合使用。...实现了 Comparable 接口的 List 或则数组可以使用 Collections.sort() 或者 Arrays.sort() 方法进行排序。...这里表达的是在有些场景下 equals 和 compareTo 结果要保持一致,这时候不重写 equals,使用 Object.equals 方法得到的结果会有问题,比如说 HashMap.put(

    71720

    PHP数组

    count($Array); count()函数返回数组的长度 关联数组:带有指定键的数组,每个键关联一个值(类似键值对) 多维数组:每一个数组值中包含另外一个或多个数组 关联数组: 创建方法...> 根据关联数组中的key进行数组升序 ksort():关联数组value升序 函数会根据每一个数组的第一个元素(cars[x] [0])进行排序操作; 函数默认是进行升序排序,同时函数也接受第二个参数指定排序方法:SORT_ASC(升序)、SORT_DESC(降序) usort...():用户自定义排序 实现自定义排序方法,就需要使用函数:usort() 告诉PHP如何对排序对象进行比较 PHP内置了比较函数:compare(),用户自定义排序方法需要覆写PHP的比较函数 function...separator , string string [, int limit]); 第一个参数是指定的分隔符,第二个参数是字符串内容(数组中的字符串) <!

    6.9K20

    Java 集合源码详解

    Java 集合源码详解 集合和数组数组声明了容纳的元素的类型,而集合不声明存储Object类型 可以通过泛型进行规范! 数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。...eles中的所有元素添加进来 Object get(int index):获取指定index位置的元素 … List接口的实现类常用的:ArrayList、LinkedList和Vector...如果, 我们对新增的对象,类型的值,进行比较唯一, 对equals重写..即可! 不同地址对象, 值相同添加失败! 实现唯一的效果!...但是在开发场景中, 门需要对多个对象进行, 排序, 言外之意就是比较对象的大小; Java通过两个接口实现: Comparable( 中: 比较 读: 看牌啊爆 ) 或 Comparator( 中:...也可以通过, Collections.sort(); 或 Arrays.sort 其实内部就是Collection.sort(); 给数组/集合进行排序; 这是之前的代码截图… 总结: 要进行排序的对象类

    11710
    领券