0

我怎样才能使这样一个数组的值唯一。

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

由于有两次笔,我希望以这种方式将其删除:

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

或者

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

我希望它适用于任何长度。

感谢您的帮助

4

4 回答 4

2

两次使用array_flip怎么样:

$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 回答