当前位置: 首页 > 知识库问答 >
问题:

多维数组递归Lopp

谷泳
2023-03-14

我在学递归。我有二维数组。我想要超过100的数字

$arr=[923,100=>[123,158,12],111,12];
check_number($arr)

function check_number($arg){
        static $list=[];
        foreach($arg as $k=>$v){
            if(is_array($v)){
                check_number($v);
            }
            if($v>100){
                $list[]=$v;
            }
          
        }
        return $list;
    }

结果是数组:

 array:5 [▼
      0 => 923
      1 => 123
      2 => 158
      3 => array:3 [▼
        0 => 123
        1 => 158
        2 => 12
      ]
      4 => 111

我不明白为什么键3包含嵌套数组。请给我一些解释。

共有1个答案

皇甫雨华
2023-03-14

当您找到一个列表时,您仍在运行下一个比较。。。

if($v>100){
    $list[]=$v;
}

此时,您正在将数组与100进行比较,这会将数组添加到$list中。

将其更改为ElseIf,它将执行一个或另一个。。。

elseif($v>100){
    $list[]=$v;
}
 类似资料:
  • ,该数组是一维数组,第一层节点是parent:# 第二层根据第一层id和 第二层parent进行比较,以此类推

  • 问题内容: 对于从PHP数组中删除空元素这一古老的问题,我似乎找不到一个简单而直接的解决方案。 我的输入数组可能如下所示: (依此类推,如果有更多数据,尽管可能没有…) 如果看起来像上面的一样,我希望在处理 完 之后将其 完全清空 。 因此将输出: 如果我运行,我仍然会得到 相同的 输出。不过,我到过的所有地方都表明这是在PHP5中删除空数组元素的最简单方法。 我也尝试过,但是出现以下错误: 警告

  • 问题内容: 我正在寻找一个函数,该函数需要一个页面/类别的数组(来自平面数据库结果),并根据父ID生成一个嵌套的页面/类别的数组。我想递归地执行此操作,以便可以进行任何级别的嵌套。 例如:我在一个查询中获取所有页面,这就是数据库表的样子 这是我要最终在视图文件中处理的数组: 我已经看过并尝试过几乎遇到的所有解决方案(Stack Overflow上有很多解决方案,但是没有运气得到足够通用的东西同时适

  • MATLAB中的多元数组MATLAB是下标多于两个的数组。可以调用带有两个以上变元的zeros, ones, rand, 或randn函数来产生。例如, R = randn(3,4,5); 生成一个3*4*5的数组,共有3x4x5 = 60个正态分布的随机元素。 三维数组可能表示三维物理数据,譬如房间的温度,取样于一个长方形网格。或者,可表示一个矩阵序列A(k),或依赖时间变化的矩阵A(t)。在

  • 问题内容: 例如: 一个) 与 b) 最初以为我会为了简化而选择a)。 我知道Java不会像C那样在内存中线性存储数组,但是这对我的程序有什么影响? 问题答案: 通常,在搜索答案时,最好的办法是查看如何将选择编译到JVM字节码中: 这被翻译成: 因此,如您所见,JVM已经知道我们在谈论多维数组。 进一步说明: 这被转换为(跳过循环): 因此,如您所见,多维数组在VM内部进行处理,无用指令不会产生开

  • 我正在尝试解决这个递归练习: 在多维板(M x N)中,每个元素都可以是空的,也可以是满的。 “污点”大小是相邻且值为“x”的元素的数量。 null

  • 主要内容:1、二维数组,2、初始化二维数组,3、访问二维数组种的元素C# 中同样支持多维数组(也可称为矩形数组),它可以是二维的,也可以是三维的,多维数组中的数据以类似表格(行、列)的形式存储,因此也被称为矩阵。 要创建多维数组,我们需要在声明数组的方括号内添加逗号,例如: int[,] arr=new int[3,3];         // 声明一个二维数组 int[,,] arr=new int[3,3,3];     // 声明一个三维数组  1、二维数组

  • 除了一维数组和二维数组外, Java 中还支持更多维的数组,如三维数组、四维数组和五维数组等,它们都属于多维数组。经过前面一维,二维的练习后不难发现,想要提高数组的维数,只要在声明数组时将索引与中括号再加一组即可,所以三维数组的声明为 int score[][][],而四维数组为 int score[][][][],以此类推。 通常也将二维数组看作是多维数组。本文以三维数组为例来介绍多维数组。 三