gpt4 book ai didi

php - 如果值是另一个值的子字符串,则从数组中删除值

转载 作者:可可西里 更新时间:2023-10-31 22:43:57 24 4
gpt4 key购买 nike

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 的子串.

我正在构建一个用于文本搜索的字符串,并希望它尽可能短。

更新:回复:评论:)

foreach ($array as $i => $value) {
foreach ($array as $j => $search) {
if ($i === $j) continue;
if (false !== stripos($search, $value)) {
unset($array[$i]);
}
}
}

最佳答案

怎么样...

array_walk($array, function(&$v,$k,&$a) {
if(count(preg_grep('~'.preg_quote($v,'~').'~i',$a))>1)unset($a[$k]);
},&$array);

编辑:

我在 php 5.3.22 中对此进行了测试,并且通过引用传递函数已被 5.4 删除,因此按照 OP 的建议,这是 5.4+ alt:

array_walk($array, function (&$v, $k) use (&$array) { 
if(count(preg_grep('~'.preg_quote($v,'~').'~i', $array))>1)unset($array[$k]);
});

关于php - 如果值是另一个值的子字符串,则从数组中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19759959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com