私はこのような配列を持っています:
$names = array('John Doe','Marc','Rudolph', 'John Doe','Steve', 'Marc');
PHPで重複した名前を削除するにはどうすればよいですか?
新しい配列は次のようにする必要があります。
$names = array('John Doe','Marc','Rudolph','Steve');
これを行う機能は何ですか?
私はこのような配列を持っています:
$names = array('John Doe','Marc','Rudolph', 'John Doe','Steve', 'Marc');
PHPで重複した名前を削除するにはどうすればよいですか?
新しい配列は次のようにする必要があります。
$names = array('John Doe','Marc','Rudolph','Steve');
これを行う機能は何ですか?
常に最初に php.net のマニュアルを確認してください。
$names = array('John Doe','Marc','Rudolph', 'John Doe','Steve', 'Marc');
$names = array_unique($names);
使用array_unique()
:
$myArray = array(....);
$uniqueArray = array_unique( $myArray );
ドキュメントを参照してください: http://php.net/manual/en/function.array-unique.php
使用できますが、これは次のような場合にarray_unique
注意してくださいnot work
case 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)));
}