【问题标题】:Nested array in for each loop每个循环中的嵌套数组
【发布时间】:2022-01-05 15:34:25
【问题描述】:

下午好,

我还有一些问题。我有一个嵌套数组,我想这就是它的名字,如下所示。

Array ( 
[Material] => Array ( 
[0] => Array ( [0] => Material [1] => 3 ) 
[1] => Array ( [0] => Material [1] => 1 ) 
[2] => Array ( [0] => Material [1] => 4 ) ) 
[Base] => Array ( 
[0] => Array ( [0] => Base [1] => 2 ) ) )

我想用它来创建一个在 PHP 中使用的 foreach 循环。我需要对“材料”进行一次迭代,对“基础”进行一次迭代。未来可能还会有更多。然后我想使用数组值 (3, 1, 4) 例如使用下面的代码为 SQL 查询创建过滤器。

$brand_filter = implode("','", *Array values here*);

我该怎么做呢?我在这里查看了一些示例,并已转换为字符串错误。

这些是我用来测试每​​个循环的代码

foreach ($grouped as $group => $types) {
echo "Group: " . $group;
foreach ($types as $type) {
        echo "Type: " . $type;
     }
}

这是我得到的结果

组:材料

注意:C:\xampp\htdocs\360v3\ext\filter\fetch_data.php 中的数组到字符串的转换 第 50 行

类型:数组

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    您的错误是让您知道您正在尝试将数组连接到字符串。

    在您的代码中,$type 是一个数组,并且在您的循环执行时将是其中之一:

    [0 => Material, 1 => 3]
    [0 => Material, 1 => 1]
    [0 => Material, 1 => 4]
    [0 => Base, 1 => 2]
    

    要访问第二个值,您需要将代码更新为:

    foreach ($grouped as $group => $types) {
        echo "Group: " . $group;
        foreach ($types as $type) {
            echo "Type: " . $type[1];
        }
    }
    

    注意$type[1]

    这将导致输出:

    Group: Material
    Type: 3
    Type: 1
    Type: 4
    Group: Base
    Type: 2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 2022-01-07
      • 2022-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多