我有一个多维数组,我想使用这个来搜索值和键
<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;
}
}
}
}
这可以让我了解《Modest Mouse》或《The Vasco Era》,但不会更深入。如果我在输入字段中键入"T",我希望能够得到结果"月亮&"Antartica"、"The Lonesome Crowded West"、"Trailer Trash"one_answers"The Vasco Era"。
您可以有一个函数,它接受一个变量,并检查它是否是数组,是否是数组中每个元素的数组循环。随后,如果这些元素是数组,则递归调用回该函数,如果它们不是数组,则如上所示运行比较。
function checkForHint($var)
{
foreach ($var as $value) {
if(is_array($value))
{
checkForHint($value);
} else {
// Your code here
}
}
}
也许是这样。