【问题标题】:Array looping - cannot get key to print数组循环 - 无法获取打印密钥
【发布时间】:2011-06-07 15:25:31
【问题描述】:

我在 $newarray 中有一个如下数组

Array
(
    [111] => Array
        (
            [123] => 0
            [124] => 0
            [125] => 0
            [126] => 0
            [127] => 0
            [128] => 0
            [129] => 0
            [130] => 1
            [131] => 1
            [132] => 1
            [133] => 1
            [134] => 1
            [135] => 1
        )

    [222] => Array
        (
            [123] => 0
            [124] => 0
            [125] => 0
            [126] => 1
            [127] => 1
            [128] => 1
            [129] => 1
            [130] => 1
            [131] => 1
            [132] => 1
            [133] => 1
            [134] => 1
            [135] => 1
        )

    [333] => Array
        (
            [256] => 0
            [321] => 0
            [456] => 0
            [489] => 0
            [652] => 1
            [741] => 1
            [965] => 0
        )

)

我需要在 foreach 中获取键名(在本例中为 111、222 和 333):

无论我做什么,以下总是吐出 3 次“222”。有什么明显的吗?

foreach($newarray as $value) {
echo key($newarray) . "<br />";
}

输出

222
222
222

【问题讨论】:

    标签: php arrays loops multidimensional-array


    【解决方案1】:

    试试这个:

    foreach($newarray as $key => $value)
    {
         echo $key . "<br />";
    }
    

    【讨论】:

    • 谢谢两位。所以我在使用 $arr 作为 $key => $value 方法时遇到的问题是它不适用于另一个嵌套的 foreach。然后在每个 foreach 循环中执行foreach ($value as $value2),以便获取下一个数组的键和值(在第一个示例中为 123 和 0)。当我相应地更改 foreach 方法和 var 名称时,它不起作用。
    • @Dan 它应该可以正常工作 - 你得到什么输出,你期待什么?你的代码是什么样的?如果你使用foreach ($newarray as $key=&gt;$value),你应该仍然在下一个foreach中使用$value变量(这是你的下一级数组):foreach ($value as $key2=&gt;$value2)
    • @Aether - 谢谢!我想该喝咖啡了!
    【解决方案2】:

    这才是foreach的正确使用方式

    foreach($newarray as $key=>$value) {
        echo $key . "<br />";
    }
    

    或者你可以使用

    print_r(array_keys($newarray));
    

    【讨论】:

      猜你喜欢
      • 2014-08-05
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多