0

我收到此代码的以下错误 -

警告:sort() 期望参数 1 是数组。

$array1 = new ArrayObject();

$array1->append("50");
$array1->append("30");
$array1->append("60");

sort($array1); // Should sort to 30, 50, 60.

任何人都可以创建解决方案吗?

4

4 回答 4

2

sort()仅适用于数组。ArrayObject是一个对象而不是一个数组。

改用 asort 方法 ( $array1->asort();)

于 2012-12-28T18:36:16.113 回答
1

相反,您需要尝试这种方式:

$array1->asort();

查看arrayobject.asort更多信息!

于 2012-12-28T18:35:20.723 回答
0

您看到此问题是因为您正在尝试对对象进行排序。尽管它的名字ArrayObject是一个对象而不是一个数组(参见手册)。

您的选择是:

$array1 = new ArrayObject();

$array1->append("50");
$array1->append("30");
$array1->append("60");

$array1->asort();

或者只使用一个数组

$array1 = array();

$array1[] = "50";
$array1[] = "30";
$array1[] = "60";

sort($array1);

您实际上是在尝试在对象上使用程序函数。

于 2012-12-28T18:38:23.647 回答
0

如果您希望使用该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);
于 2012-12-28T18:40:36.957 回答