我想删除数组上的一些重复值,但有一个条件是脚本必须忽略包含特定单词的数组。
以下代码改编自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
怎么做?