7

array_unique 関数をチェックしています。マニュアルには、値もソートすると書かれています。しかし、値を並べ替えていることがわかりません。私のサンプルコードを見てください。

$input = array("a" => "green", 3=>"red", "b" => "green", 1=>"blue", "red");
print_r($input);
$result = array_unique($input,SORT_STRING);
print_r($result);

The output is

Array
(
    [a] => green
    [3] => red
    [b] => green
    [1] => blue
    [4] => red
)
Array
(
    [a] => green
    [3] => red
    [1] => blue
)

ここで、配列 $result はソートされていません。どんな助けでも大歓迎です。

ありがとうプラモド

4

3 に答える 3

7

array_unique:

入力配列を受け取り、重複値のない新しい配列を返します。

キーは保持されることに注意してください。array_unique() は、すべての値に対して最初に検出されたキーを保持し、後続のすべてのキーを無視します。

これを試して結果を得ることができます:

<?php 
$input = array("a" => "green", 3=>"red", "b" => "green", 1=>"blue", "red");
print_r($input);
$result = array_unique($input);
print_r($result);
asort($result);
print_r($result);
于 2014-08-16T07:29:29.570 に答える
5

マニュアルには、配列要素をソートするとは書かれておらず、パラメータsort_flagsによってソート動作が変更されると書かれています。

オプションの 2 番目のパラメーター sort_flags を使用して、次の値を使用して並べ替えの動作を変更できます。[...]

並べ替え動作は、配列値を並べ替えて比較を実行し、ある要素が別の要素と等しいと見なされるかどうかを判断するために使用されます。基になる配列の順序は変更されません。

配列を並べ替えたい場合は、別の操作として行う必要があります。配列の並べ替えに関するドキュメントは、こちらにあります

配列の値に基づくデフォルトの昇順ソートには、 を使用できますasort

于 2014-08-16T07:26:18.887 に答える
1

array_unique入力配列を受け取り、重複値のない新しい配列を返します。実際にはソートされません。詳細はhttp://php.net/manual/en/function.array-unique.phpをご覧ください。

于 2014-08-16T07:31:36.080 に答える