我从 mysql 表中获取结果并将每个单元格放入一个数组中,如下所示:
$sqlArray = mysql_query("SELECT id,firstName FROM members WHERE id='$id'");
while ($arrayRow = mysql_fetch_array($sqlArray)) {
$friendArray[] = array(
'id' => $arrayRow['id'],
'firstName' => $arrayRow['firstName'],
);
}
然后我搜索一个特定的朋友。例如,如果我想搜索一个名叫Osman的朋友,我会键入,o
它会返回以该字母开头的所有结果o
。这是我的代码:
function array_multi_search($array, $index, $pattern, $invert = FALSE) {
$output = array();
if (is_array($array)) {
foreach($array as $i => $arr) {
// The index must exist and match the pattern
if (isset($arr[$index]) && (bool) $invert !== (bool) preg_match($pattern, $arr[$index])) {
$output[$i] = $arr;
}
}
}
return $output;
}
$filtered = array_multi_search($friendArray, 'firstName', '/^o/i');
然后它将打印出所有结果。我的问题是它返回了一个错误"Invalid argument supplied to foreach()"
,这就是我添加if(is_array))
条件的原因。如果我将此代码留在index.php
页面中,它工作正常,但我将它移动到一个名为的子文件夹phpScripts
,它在那里不起作用。有什么帮助吗?
$output
没有返回任何值,因为显然$friendArray
不是数组。但我验证了它是通过使用print_r($friendArray)
它返回所有成员的id
and firstName
。
PS我使用JavaScript来调用使用AJAX。