如何在jquery中迭代数组中的数据

How to Iterate data from array inside another array in jquery

本文关键字:数组 数据 迭代 jquery      更新时间:2023-09-26

我有一个数组在另一个数组中像这样在PHP

Array
(
    [common_search] => Array
        (
            [BusinessName] => Sun Shine Vision
            [Address] => Amulia St Madhava Pharmacy Jn
            [Phone] => 
        )
    [cache_table] => Array
        (
            [Details] => Speedtrax,Ample's Bldg Off Banerji Rd., Amulia St,
        )
)

我必须迭代这些作为单独的数组在我的结果页面使用Jquery,因为我想让这些数组分别显示在不同的div设置为html,我怎么能从两个数组(common_search, cache_table)分别获得数据。在我的html中,我想设置数据,如$("#common_searchdiv").html(common_search)$("#cache_tablediv").html(cache_table)。提前感谢

当json编码命名数组时,它们将被解析为javascript中的对象,所以你可以这样做:

<script>
   var data = <?=json_encode($data);?>
</script>

因为现在javascript中的数据将是一个对象,所以你可以直接访问像

这样的属性
<script>
data["common_search"]["BusinessName"];
</script>

或者用

遍历它

$.each

不能直接将数据作为数组传递。执行json_encode of array。然后在jquery端解析json,然后运行each/for循环。在键的匹配上,您可以添加条件。

像这样做

var result = $.parseJSON(jsonstring);//jsonstring is your json encoded string.
for(var k in result) {
   if (k == 'common_search') {
       $("#common_searchdiv").html(result[k]); 
   } 
   if (k == 'cache_table') {
       $("#cache_tablediv").html(result[k]);
   }
}

供您参考

var jsonstring = {"common_search":{"strBusinessName":"Sun Shine Vision","strAddress":"Amulia St Madhava Pharmacy Jn","intPhone":""},"cache_table":{"Details":"Speedtrax,Ample's Bldg Off Banerji Rd., Amulia St,"}};
var jsonstring = JSON.stringify(jsonstring).replace(/''/, "/'");
var result = $.parseJSON(jsonstring);//jsonstring is your json encoded string.
for(var k in result) {
   if (k == 'common_search') {
       alert(result[k]['strBusinessName'])
       $("#common_searchdiv").html(result[k]['strBusinessName']); 
   } 
   if (k == 'cache_table') {
       $("#cache_tablediv").html(result[k]);
   }
}

请尝试一下。

<?php
$arr_temp = Array
(
    'common_search' => Array
        (
            'BusinessName' => "Sun Shine Vision",
            'Address' => "Amulia St Madhava Pharmacy Jn",
            'Phone' => ''
        ),
    'cache_table' => Array
        (
            'Details' => "Speedtrax,Ample's Bldg Off Banerji Rd., Amulia St,"
        )
);
?>
<script>
$(document).ready(function() {
    var data_arr = <?php echo json_encode($arr_temp); ?>;
    $.each(data_arr,function(item){     
        $.each(data_arr[item],function(myitem){
            console.log(myitem);
        });
    });
});
</script>