2

私はこのような配列を持っています:

$names = array('John Doe','Marc','Rudolph', 'John Doe','Steve', 'Marc');

PHPで重複した名前を削除するにはどうすればよいですか?

新しい配列は次のようにする必要があります。

$names = array('John Doe','Marc','Rudolph','Steve');

これを行う機能は何ですか?

4

3 に答える 3

3

常に最初に php.net のマニュアルを確認してください。

$names = array('John Doe','Marc','Rudolph', 'John Doe','Steve', 'Marc');
$names = array_unique($names);

http://php.net/manual/en/function.array-unique.php

于 2012-10-13T15:25:42.850 に答える
0

使用array_unique():

$myArray = array(....);
$uniqueArray = array_unique( $myArray );

ドキュメントを参照してください: http://php.net/manual/en/function.array-unique.php

于 2012-10-13T15:27:43.690 に答える
0

使用できますが、これは次のような場合にarray_unique注意してくださいnot workcase sensitive array

 $names = array('John Doe','Marc','Rudolph','John doe','Steve','Marc');
                      ^-- Capital                 ^--Small      

あなたが実行する場合

var_dump(array_unique($names));

出力

array
  0 => string 'John Doe' (length=8)
  1 => string 'Marc' (length=4)
  2 => string 'Rudolph' (length=7)
  3 => string 'John doe' (length=8)
  4 => string 'Steve' (length=5

解決策 一意かどうかを確認する前に、すべてを同じケースに変換します

var_dump(arrayUnique($names));

出力

array
  0 => string 'John Doe' (length=8)
  1 => string 'Marc' (length=4)
  2 => string 'Rudolph' (length=7)
  4 => string 'Steve' (length=5)

使用する機能

function arrayUnique($array) {
    return array_intersect_key($array, array_unique(array_map("strtolower", $array)));
}
于 2012-10-13T15:53:45.893 に答える