以下是将唯一值存储到变量的代码。
$filtermodel = array_unique($list2);
输出:
Array
(
[0] => 15592
[1] => 182
[4] => 14208
[7] => 183
[11] => 184,185,186
[15] => 174
[16] => 177
[23] => 184,186
[24] => 184,185,186,187
[29] => 179
[38] => 188
[41] => 174,176,184,185,186,187
)
以上array key[11] contains 184,185,186
和key[23][24]
包含与key[11]
相同的内容。如何删除数组中的重复项?有帮助吗?提前谢谢。
答案 0 :(得分:0)
你可以在数组中的每个元素上使用foreach并使用逗号,
进行爆炸,然后在结果列表中执行唯一
这是Demo
答案 1 :(得分:0)
如果我们假设'182,186'例如是一个整数数组并且正确地试图实现以下工作:
如果没有,那么请考虑更好地指出你想要实现的目标
$mArray = array(
15592,
182,
14208,
183,
array(184,185,186),
174,
177,
array(184,186),
array(184,185,186,187),
179,
188,
array(174,176,184,185,186,187),
);
$mFinalArray = [];
foreach($mArray as $currentObject)
if(!is_array($currentObject) && !in_array($currentObject, $mFinalArray))
$mFinalArray[] = $currentObject;
else if(is_array($currentObject))
foreach($currentObject as $currentObjectInside)
if(!in_array($currentObjectInside, $mFinalArray))
$mFinalArray[] = $currentObjectInside;
sort($mFinalArray);
print_r($mFinalArray);
输出:
Array
(
[0] => 174
[1] => 176
[2] => 177
[3] => 179
[4] => 182
[5] => 183
[6] => 184
[7] => 185
[8] => 186
[9] => 187
[10] => 188
[11] => 14208
[12] => 15592
)
答案 2 :(得分:0)
您可以使用array_walk
传递引用,使用第三个参数(userdata)作为已使用值的字典:
array_walk($array, function(&$item, $_, &$dict) {
$values = explode(',', $item);
$item = implode(',', array_filter($values, function ($value) use (&$dict) {
// If value already in the dictionary, just skip it.
if (isset($dict[$value])) {
return false;
}
// Add value to the dictionary and not filter it out.
return $dict[$value] = true;
}));
}, []);
这是working demo。
答案 3 :(得分:0)
尝试使用foreach循环,并且每行包含','符号尝试使用explode。
您还可以创建一个数组,仅用于保存现有值,以便以后检查它们是否存在。
简单示例 -
$unique_values = [];
$all_values = array (
[0] => 15592
[1] => 182
[4] => 14208
[7] => 183
[11] => 184,185,186
[15] => 174
[16] => 177
[23] => 184,186
[24] => 184,185,186,187
[29] => 179
[38] => 188
[41] => 174,176,184,185,186,187
);
foreach( $all_values as $av ) {
if( strpos( $av, ',' ) !== false ) {
$av = explode( ',', $av );
foreach( $av as $a ) {
array_push( $unique_values, $a );
array_unique( $unique_values );
$result = !empty( array_intersect( $unique_values, $a ) );
}
}
}
我没有测试这段代码,但是我用它来解释逻辑。