次のように、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を検索したい場合、and と入力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 私は AJAX を使用して呼び出しに JavaScript を使用します。