我有一组取自 Geocoding API ($glocs) 的 Google 位置实体。有时数组的一个元素在另一个元素中部分重复(例如,“波斯尼亚和黑塞哥维那联邦,波斯尼亚和黑塞哥维那”)。当我通过内爆用逗号分隔的数组在前端输出它们时,我希望输出看起来不那么机械化。我编写这段代码是为了避免重复名称:
$g = 1;
foreach($glocs as $gloc) {
echo '<pre>$gloc ' . $gloc . ' vs $glocs[' . $g . '] ' . $glocs[$g]; // Just to see how it works
if (stripos($gloc, $glocs[$g]) !== false OR stripos($glocs[$g], $gloc) !== false) {
$glocs[$g - 1] = $glocs[$g];
}
echo '</pre>';
$g++;
}
它应该检查数组的每个元素是否包含下一个元素,反之亦然。找到后,它将当前元素替换为下一个元素(留下“波斯尼亚和黑塞哥维那,波斯尼亚和黑塞哥维那”)。随后的 array_unique 应该完成这项工作。
问题是“if”部分不起作用。如果我将“false”替换为“0”,则在所有情况下都会触发它。我还以其他方式修改了这段代码(例如,=== true 而不是 !== false 或 $gloc 而不是 $glocs[$g-1]),但它没有按我想要的方式工作.
请帮我解决我的问题。也许我缺少另一种方法。谢谢。
最终,我创建了一个冗余词数组,例如“Federation of”、“Arrondisement”(代表巴黎),并开始针对该数组运行元素,消除包含冗余词的元素。