我有一个多维数组,我想用它来搜索值和键
<input type="text" onkeyup="showHint(this.value)"></input>
伴随着这个
function showHint(str)
{
if (str.length==0)
{
document.getElementById("nav").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("nav").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
}
我只是有点卡在 php 位上。数组看起来像这样(缩短)
Array
(
[Modest Mouse] => Array
(
[The Moon & Antarctica] => Array
(
[0] => 3rd Planet
[1] => Gravity Rides Everything
[2] => Dark Centre of the Universe
)
[The Lonesome Crowded West] => Array
(
[7] => Cowboy Dan
[8] => Trailer Trash
[9] => Out of Gas
)
[The Vasco Era] => Array
[Lucille] => Array
(
[0] => Not Stuck Here
[1] => For No One
)
)
)
我首先获取查询
$q=$_GET["q"];
然后我可以这样做
if (strlen($q) > 0)
{
$hint="";
foreach($a as $b => $c)
{
if (strtolower($q)==strtolower(substr($b,0,strlen($q))))
{
if ($hint=="")
{
$hint=$b;
}
else
{
$hint=$hint." , ".$b;
}
}
}
}
这可以让我得到适度的老鼠或瓦斯科时代,但没有更深层次的东西。如果我要在输入字段中输入“T”,我希望能够得到“月球和南极洲”、“孤独的拥挤西部”、“拖车垃圾”和“瓦斯科时代”的结果。