我正面对这个问题,可能这很愚蠢......但是我们走了:
我有一个常规的预告:
foreach $values as $values => $key {
$test[] = $key;
}
当然,测试是在循环外定义的。
现在,这会返回如下内容:
array(6) {
[0]=> int(10)
[1]=> int(16)
[2]=> int(10)
[3]=> int(16)
[4]=> int(10)
[5]=> int(16)
[6]=> int(10)
}
但是,我需要忽略重复的值,所以测试将是这样的:
array(2) {
[0]=> int(10)
[1]=> int(16)
}
只有在不重复的情况下才会添加新值。我已经尝试过array_unique和array_values但是我没有使用如果我实现它们不好或者问题是什么......
任何帮助将不胜感激。
最诚挚的问候。
答案 0 :(得分:2)
如果您只想添加值,如果它不存在,请使用in_array()
$test=array();
// organize the array by cusip
foreach ($values as $values => $key) {
if(!in_array($key, $test)){
$test[]=$value;
}
}
答案 1 :(得分:1)
为什么不使用array_unique()
?
考虑这个例子:
$values = array_unique($values);
或者如果您不想使用array_unique()
,可以采用其他方式:
foreach ($values as $index => $element) {
if(!in_array($element, $values)) {
$test[] = $element;
}
}
答案 2 :(得分:1)
如何使用 array_unique 分配数组:
<?php
$x = array
(
0 => 'int(10)',
1 => 'int(16)',
2 => 'int(10)',
3 => 'int(16)',
4 => 'int(10)',
5 => 'int(16)',
6 => 'int(10)'
);
$x = array_unique($x);
print_r($x);
?>
这将输出
Array
(
[0] => int(10)
[1] => int(16)
)
答案 3 :(得分:1)
如果array_unique
以某种方式不适合您,您可以使用:
<?php
foreach( $values as $values => $key ){
if( !in_array($key, $test) )
$test[] = $key;
}
?>
答案 4 :(得分:0)
这里你的数组是
$test = array(6) {
[0]=> int(10)
[1]=> int(16)
[2]=> int(10)
[3]=> int(16)
[4]=> int(10)
[5]=> int(16)
[6]=> int(10)
}
您可以使用array_unique($test)
来删除重复值。