【问题标题】:Sorting an ArrayObject in php [closed]在php中对ArrayObject进行排序[关闭]
【发布时间】:2012-12-13 23:43:15
【问题描述】:
我收到以下代码错误 -
警告:sort() 期望参数 1 是数组。
$array1 = new ArrayObject();
$array1->append("50");
$array1->append("30");
$array1->append("60");
sort($array1); // Should sort to 30, 50, 60.
任何人都可以创建解决方案吗?
【问题讨论】:
标签:
php
arrays
sorting
object
append
【解决方案1】:
如果您想使用sort 函数,您必须将创建数组的方式更改为:
$array1 = array();
$array1 = array_push(array1, "50");
$array1 = array_push(array1, "30");
$array1 = array_push(array1, "60");
sort(array1);
甚至更简单:
$array1 = array("50","30","60");
sort(array1);
【解决方案2】:
您看到此问题是因为您正在尝试对对象进行排序。尽管有它的名字,ArrayObject 是一个对象而不是一个数组(参见manual)。
您的选择是:
$array1 = new ArrayObject();
$array1->append("50");
$array1->append("30");
$array1->append("60");
$array1->asort();
或者只使用一个数组
$array1 = array();
$array1[] = "50";
$array1[] = "30";
$array1[] = "60";
sort($array1);
您实际上是在尝试对对象使用过程函数。
【解决方案3】:
sort() 仅适用于数组。 ArrayObject 是一个对象,而不是一个数组。
改用 asort 方法 ($array1->asort();)
【解决方案4】:
相反,您需要尝试这种方式:
$array1->asort();