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 に答える