微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php数组中的inArray jQuery,找到项目索引

我在网上某个地方找到的这段代码可以正常工作,这是我想要实现的目标:

$(document).ready(function(){
    var arrData = [ "j", "Q", "u", "e","r","y" ];   
    alert(jQuery.inArray("Q", arrData));
});

但是,我有一个来自PHP / MysqL循环的数组,我这样输出并保存:

$query = MysqL_query("SELECT * FROM geo_orter");
            while(($row = MysqL_fetch_assoc($query))){
                $i = $row['ort_id'];
                $result[$i] = $row['ortnamn'];
            };
            $allaOrterjson=json_encode($result);

然后,我继续执行此操作,该方法有效:

var allaOrter=<?PHP echo $allaOrterjson ?>;

    document.write(allaOrter[0] + allaOrter[1] + allaOrter[2]);

给我

undefinedAborremålaAbbjörnahall

这是问题所在:

我试过了

$(document).ready(function(){
    alert(jQuery.inArray("Aborremåla", allaOrter));
});

但结果为“ -1”(未找到).

我试图找出数组中某项的索引nr.有任何想法吗?

记录结果:

解决方法:

这里的问题是json_encode($result);创建一个JSON对象,而不是一个数组.因此,jQuery.inArray无法正常工作.

而是构建一个JavaScript数组:[“ value”,“ value”,“ value”等…];

或对对象执行以下操作:

var locations = {
    "Abårremöla" : 1,
    "Stuff" : 2,
    "Ludvika" : 1549
};

var query = "Ludvika";
if(query in locations) {
    var id = locations[query];
    alert(id); //displays 1549
}

为此,您必须以其他方式在PHP中构建对象-因此,以位置名称作为索引器和id作为值的PHP数组:

$query = MysqL_query("SELECT ort_id, ortnamn FROM geo_orter");
while(($row = MysqL_fetch_assoc($query))){
    $index = $row['ortnamn'];     //<- note!
    $result[$i] = $row['ort_id']; //<- note!
};
$allaOrterjson=json_encode($result);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐