何らかの理由で私はこの問題を抱えていますが、私は以下のようなPHPで多次元配列を持っています(MySQLデータ)。私がしたいのは、 "dealerID"に基づいて重複配列を削除することです。PHPで多項式配列の重複配列を取り除く
以下の例では、配列を検索し、duplicateのdealerID配列を削除したいとします。ユニークdealerIDと
array(2) {
[0]=>
array(3) {
["dealerID"]=>
string(3) "634"
["Name"]=>
string(15) "Dealer Name String"
["Other Name"]=>
string(15) "Dealer Name String"
}
[1]=>
array(3) {
["dealerID"]=>
string(3) "777"
["Name"]=>
string(15) "Dealer Name String"
["Other Name"]=>
string(15) "Dealer Name String"
}
[2]=>
array(2) {
["dealerID"]=>
string(3) "777"
["Name"]=>
string(15) "Dealer Name String"
}
[3]=>
array(3) {
["dealerID"]=>
string(3) "777"
["Name"]=>
string(15) "Dealer Name String"
["Other Name"]=>
string(15) "Dealer Name String"
}
[4]=>
array(2) {
["dealerID"]=>
string(3) "777"
["Name"]=>
string(15) "Dealer Name String"
}
望ましい結果、配列のみ:
私が試してみました何array(2) {
[0]=>
array(3) {
["dealerID"]=>
string(3) "634"
["Name"]=>
string(15) "Dealer Name String"
["Other Name"]=>
string(15) "Dealer Name String"
}
[1]=>
array(3) {
["dealerID"]=>
string(3) "777"
["Name"]=>
string(15) "Dealer Name String"
["Other Name"]=>
string(15) "Dealer Name String"
}
:
$copy = $array; // create copy to delete dups from
$used = array(); // used emails
for($i=0; $i<count($array); $i++) {
if (in_array($array[$i][0], $used)) {
unset($copy[$i]);
}
else {
$used[] = $array[$i][0];
}
}
と:
foreach($dealerList as $key => $subarray) {
if (in_array($dealerList[$subarray], $used)) {
echo "ALREADY";
}
else {
$used[] = $dealerList[$subarray];
echo "NOT ALREADY";
}
}
#$dealerList = $copy;
を
例、これを取ります
はOK、私はdealerID' –
'グループ上記のコードでそれを置く私が試したものを入れます配列を比較する単一のコマンドもありますが、配列が常に同じサイズではないので動作しないと思います。 – splash58
で –