求教一个JQ 遍历 生成多维数组的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教一个JQ 遍历 生成多维数组的问题相关的知识,希望对你有一定的参考价值。

let arr_temp = []
$('#attr_box .attr_name').each(function()
if($(this).is(':checked'))
let lid = $(this).attr('id');
let lidArr = lid.split('_')
console.log(lidArr) //值为  ["attr", "name", "1", "8"]
arr_temp[lidArr[2]][lidArr[3]] = $(this).val()

);

您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!
样式模块(省略了前面三角形的样式 )
<style type="text/css">
.flfloat:left;
.frfloat:right;
</style>
html模块
<ul id="list"></ul>

js模块
<script type="text/javascript" src="jquery.js目录,不方便用线上的"></script>
<script type="text/javascript">
$(function()
var data = [
title: '2019年半年度报告全文.pdf', atime: '2019-11-12 14:27:00', url: '下载地址',
title: '2019年半年度报告全文.pdf', atime: '2019-11-12 14:27:00', url: '下载地址',
title: '2019年半年度报告全文.pdf', atime: '2019-11-12 14:27:00', url: '下载地址',
title: '2019年半年度报告全文.pdf', atime: '2019-11-12 14:27:00', url: '下载地址',
title: '2019年半年度报告全文.pdf', atime: '2019-11-12 14:27:00', url: '下载地址',
];
var ul = $('#list');
for(var i in data)
var item = data[i];
var li = '<li><div class="fl">'+ item.title +'</div><a class="fr" href="'+ item.url +'"><img src="图标地址"/></a><div class="fr">'+ item.atime +'</div></li>';
ul.append(li);

);
</script>非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
参考技术A  let arr_temp = []
    $('#attr_box .attr_name').each(function () 
        if ($(this).is(':checked')) 
            let lid = $(this).attr('id');
            let lidArr = lid.split('_')
            console.log(lidArr) //值为  ["attr", "name", "1", "8"]
            if(!arr_temp[lidArr[2]])
                arr_temp[lidArr[2]] = []
            
            arr_temp[lidArr[2]][lidArr[3]] = $(this).val()
        
    );

 请采纳

PHP循环遍历多维数组并提取信息

我有一个从函数自动生成的多维数组。它看起来像这样:

Array(
[0] => Array
    (
        [0] => stdClass Object
            (
                [team] => Borussia Dortmund (gazeder)
            )

        [1] => stdClass Object
            (
                [team] => Real Madrid (Deycekslo)
            )

    )

[1] => Array
    (
        [0] => stdClass Object
            (
                [team] => Bayern Munchen (DaviiX)
            )

        [1] => stdClass Object
            (
                [team] => AS Roma (jakobmmm)
            )

    )

[2] => Array
    (
        [0] => stdClass Object
            (
                [team] => Chelsea (davorm9)
            )

        [1] => stdClass Object
            (
                [team] => Napoli (pubilegenda)
            )

    )

    ETC...

所以我必须从中提取“团队”值并将其存储到数据库中。数据库部分不是问题,问题是提取。我尝试了几个这样的东西,但它不起作用:

    $length = count($game->tour);
       for ($row = 0; $row < $length; $row++) {
           for ($col = 0; $col <= 2; $col++) {
           echo "<p>".$game->tour[$row][$col]."</p>";
       }
    }

唯一有效的是:

    foreach($game->tour[0][0] as $array ) {
        echo $array;
        foreach($game->tour[0][1] as $array2 ) {
            echo $array2;
        }
    }

    foreach($game->tour[1][0] as $array ) {
        echo $array;
        foreach($game->tour[1][1] as $array2 ) {
            echo $array2;
        }
        echo '<br />';
    }

那个工作正常,但它是垃圾,因为我需要能够遍历该数组并打印所有“团队”值。有什么建议?

谢谢!

答案

未经测试,但我想这应该工作

function ext($obj,$name){
    $ret=array();
    $rem=array();
    $f=function() use(&$rem,&$ret,$name){
        $v=reset($rem);
        assert(NULL!==($key1=key($rem)));
        unset($rem[$key1]);
        foreach($v as $key2=>$value){
            if($key2==$name){$ret[]=$value;}
            if(is_array($value) || is_object($value))
            {
                $rem[]=$value;
            }
        }
    };
    $rem[]=$obj;
    while(!empty($rem))
    {
        $f();
    }       
    return $ret;
}

$teams=ext($arr,'team');

编辑:修改变量中的拼写错误。编辑2:警告,如果你有任何循环引用,这可能会进入无限循环... dunno,你应该测试你是否担心这一点。 edit3:修复了另一个变量名typo x.x(会破坏代码)

以上是关于求教一个JQ 遍历 生成多维数组的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 jq 从多维 JSON 数组中选择第 n 个元素

无限极分类不用递归生成多维数组(树)的方法

PHP循环遍历多维数组并提取信息

遍历多维数组并打印所有可能性

jQuery循环遍历多维数组并显示每个父数组的子数组

PHP循环遍历多维数组并更改值