【问题标题】: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();
        

        更多信息请见arrayobject.asort

        【讨论】:

          猜你喜欢
          • 2013-05-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-19
          • 2015-10-31
          • 2023-03-03
          • 2014-02-18
          • 1970-01-01
          相关资源
          最近更新 更多