我想删除数组上的一些重复值,但有一个条件是脚本必须忽略包含特定单词的数组。
以下代码改编自PHP: in_array。
$array = array( 'STK0000100001',
'STK0000100002',
'STK0000100001', //--> This should be remove
'STK0000100001-XXXX', //--> This should be ignored
'STK0000100001-XXXX' ); //--> This should be ignored
$ignore_values = array('-XXXX');
if(make_unique($array, $ignore_values) > 0) {
//ERROR HERE
}
使数组唯一的函数是:
function make_unique($array, $ignore) {
$i = 0;
while($values = each($array)) {
if(!in_array($values[1], $ignore)) {
$dupes = array_keys($array, $values[1]);
unset($dupes[0]);
foreach($dupes as $rmv) {
$i++;
}
}
}
return $i;
}
我尝试过使用if(!in_array(str_split($values[1]), $ignore)) ...
,但它是一样的。
数组应该变成这样:
STK0000100001
STK0000100002
STK0000100001-XXXX
STK0000100001-XXXX
怎么做?