标签:php
Array
(
[0] => tt0087523
[1] => cehennem melekleri
[3] => euer weg führt durch die hölle
[5] => guerreiros selvagens
[7] => jungel krigerne
[9] => jungle fever
[11] => jungle warriors
[17] => jungle warriors euer weg führt durch die hölle
[19] => la guerra de la coca
[21] => les guerriers de la jungle
[23] => los guerreros de la jungla
[25] => the czar of brazil
[27] => viidakkosoturit
)
如何删除作为另一个值的子字符串的所有值.例如,删除索引[3],因为它是[17]和[11]的子串,因为它也是17的子串.
我正在为文本搜索构建一个字符串,并希望它尽可能短.
更新:re:评论:)
foreach ($array as $i => $value) {
foreach ($array as $j => $search) {
if ($i === $j) continue;
if (false !== stripos($search, $value)) {
unset($array[$i]);
}
}
}
解决方法:
您可以使用两个循环来检查字符串是否为substr:
$array = array(
"0" => "tt0087523",
"1" => "cehennem melekleri",
"3" => "euer weg führt durch die hölle",
"5" => "guerreiros selvagens",
"7" => "jungel krigerne",
"9" => "jungle fever",
"11" => "jungle warriors",
"17" => "jungle warriors euer weg führt durch die hölle",
"19" => "la guerra de la coca",
"21" => "les guerriers de la jungle",
"23" => "los guerreros de la jungla",
"25" => "the czar of brazil",
"27" => "viidakkosoturit");
foreach($array as $key => $value){
foreach($array as $key2 => $value_to_compare){
if($key2 == $key)
continue;
$pos = strpos($value_to_compare, $value);
if($pos !== false){
unset($array[$key]);
}
}
}
print_r($array);
/*
Array
(
[0] => tt0087523
[1] => cehennem melekleri
[5] => guerreiros selvagens
[7] => jungel krigerne
[9] => jungle fever
[17] => jungle warriors euer weg führt durch die hölle
[19] => la guerra de la coca
[21] => les guerriers de la jungle
[23] => los guerreros de la jungla
[25] => the czar of brazil
[27] => viidakkosoturit
)
*/
标签:php
来源: https://codeday.me/bug/20190529/1176168.html