0

このような配列の値を一意にするにはどうすればよいですか。

Array ( [0] => Array ( [0] => wallet [1] => pen [2] => perfume [3] => pen) )

ペンが2回あるので、この方法で削除したいと思います:

( [0] => Array ( [0] => wallet [1] => pen [2] => perfume) )

また

( [0] => Array ( [0] => wallet [1] => perfume [2] => pen) )

任意の長さに適用したいと思います。

ご協力いただきありがとうございます

4

4 に答える 4

2

array_flipが 2 回使用されるのはどうですか。

$arr = Array(0 => wallet, 1 => pen, 2 => perfume, 3 => pen);
$arr = array_flip(array_flip($arr));
print_r($arr);

出力:

Array
(
    [0] => wallet
    [3] => pen
    [2] => perfume
)

インデックスの番号を付け直したい場合は、次の行を後に追加します。

$arr = array_values($arr);
于 2013-03-04T15:55:41.830 に答える
1

一意の値を選択するだけの場合は、値を比較する配列を渡す必要があります。メイン配列を渡したと仮定しています。問題が見つかった配列を渡す必要があります。これは、あなたの場合はインデックスです0配列の

$result = array_unique($input[0]);

$input一意の値の配列を持つため、pen は 2 にはなりません

配列内の重複した値を削除する必要がある場合は、これを行うことができます。

$input[0] = array_unique($input[0]);

インデックスをリセットする必要がある場合は、これを使用できます

$new_index = array_values($input[0]);
print_r($new_index);
于 2013-03-04T15:46:40.937 に答える
0

これが多次元配列の解決策です

$res  = array();
foreach($your_array as $key=>$val){
  $res[$key] = array_unique($val);
}

echo "<pre>";
print_r($res);
于 2013-03-04T16:19:42.727 に答える
0
$tmp = array ();

foreach ($array as $row) 
             array_push($tmp,array_unique($row));
于 2013-03-04T15:50:24.670 に答える