【发布时间】:2023-03-24 04:58:02
【问题描述】:
我正在循环一个关联数组,并尝试将针数组中的整个单词匹配到 haystack 数组中。以下代码完美运行,但返回太多结果,因为它匹配任何出现的字符串:
$result = array();
$name1 = array();
$name2 = array();
foreach($object->organizations as $o) {
foreach($objectCrunch as $o2) {
$name1 = $o->name;
$name2 = $o2->name;
if(stristr($name2, $name1)) {
$result[] = $o2->permalink;
}
}
}
当我尝试以下代码时:
$result = array();
$name1 = array();
$name2 = array();
foreach($object->organizations as $o) {
foreach($objectCrunch as $o2) {
$name1 = $o->name;
$name2 = $o2->name;
$pattern = "'/\b" . $name2 . "\b/i'";
if(preg_match($pattern, $name1)) {
$result[] = $o2->permalink;
}
}
}
我得到一个空数组。任何让最后一段代码工作的帮助都会很棒。
谢谢, 格雷格
【问题讨论】:
-
尝试用
$pattern = "'/\b" . preg_quote( $name2) . "\b/i'";替换$pattern = "'/\b" . $name2 . "\b/i'"; -
服务器错误...我认为 $pattern 字符串不是问题所在。我认为问题是我的正则表达式是否正确。
-
您的
$pattern字符串正在形成一个正则表达式,因此两者是一回事。
标签: php regex arrays foreach preg-match