【发布时间】:2016-05-15 14:02:25
【问题描述】:
我有多维数组,我想在其中查找一些特定的单词 这就是我的数组的样子
Array
(
[0] => Array
(
[sch_name] => Montfort School Roorkee
[sch_degree] => High School
[sch_field] => Commerce
[sch_grade] => A+
[sch_from_year] => 2007
[sch_to_year] => 2015
[sch_desc] => Montfort School was very nice
)
[1] => Array
(
[sch_name] => City Public
[sch_degree] => 12
[sch_field] => Commerce
[sch_grade] => 12
[sch_from_year] => 2007
[sch_to_year] => 2015
[sch_desc] => Great School
)
)
现在假设我想在这个多维数组中找到“montfort”这个词
所以我尝试使用这个功能
function searchForWord($id, $array) {
foreach ($array as $key => $val) {
if ($val['sch_name'] === $id) {
return $key;
}
}
return null;
}
echo $id = searchForWord('montfort', $p);
结果什么都没有,但是当我写“Montfort School Roorkee”时,结果被发现了,为什么这些词如此敏感,还有其他方法可以获取值
我不能像我们在 mysql 查询中那样使用 %keyword 之类的东西
【问题讨论】:
-
请注意,这与数组无关:这是您对
===等基本运算符的理解的问题 -
if ($val['sch_name'] === $id)正在搜索完全匹配;您的$id字符串必须与$val['sch_name']字符串完全匹配;但$id中的值只是您要匹配的字符串的一部分,因此您需要检查部分匹配。if (stripos($val['sch_name']), $id !== false) {。另请注意,strpos()区分大小写;stripos()不区分大小写 -
@MarkBaker if (stripos($val['sch_name']), $id !== false) { } 给出语法错误
-
好的,所以我打字太快了:
if (stripos($val['sch_name'], $id) !== false) { -
@MarkBaker 请将其写为答案,以便我投票并将其标记为答案
标签: php arrays multidimensional-array