配列の重複する値をいくつか削除したいのですが、特定の単語を含む配列をスクリプトが無視する必要があるという条件があります。
以下のコードは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
どうやってするか?