PHP - 如何访问嵌套数组中的特定数组值?

时间:2017-11-18 00:17:00

标签: php arrays foreach nested

我有一个这样的数组:

    Array (
    [0] => Array ( 
        [0] => 510 
        [1] => 984 
        [2] => 1045 
        [3] => 2068 
        [4] => 1054 
        [5] => 673 
        ) 
    [1] => Array ( 
        [0] => 1163 
        [1] => 1982 
        [2] => 2067 
        [3] => 3989 
        [4] => 1940 
        [5] => 1242 
        ) 
    [2] => Array ( 
        [0] => june 
        [1] => july 
        [2] => august 
        [3] => september 
        [4] => october 
        [5] => november 
        ) 
    )

我想一次只访问数组中的一个数组并回显它们。

例如,我得到:510,984,1045,2068,1054和673作为一个结果。

我看过多个主题和答案,但没有什么可以解决我的问题,我已经能够打印出所有的值,但我只是想要一些特别的。

我将其存储在变量中:$array_item

我最近的尝试是:

foreach ($array_item as $inner) {
if (is_array($inner)) {
    foreach ($inner[0] as $value) {
        echo "$value \n";
    }
}
}

这给了我:警告:为foreach()提供的参数无效。

我确信这会起作用,我做错了什么?

4 个答案:

答案 0 :(得分:3)

在您的代码中$inner[0]是内部数组元素之一,如510。你无法绕过它。

如果您只想循环遍历$array_item[0],请不要遍历整个阵列。

if (is_array($array_item[0])) {
    foreach ($array_item[0] as $value) {
        echo "$value\n";
    }
}

答案 1 :(得分:0)

is_array($ array_item)是否返回true?

if (is_array($array_item)) {
    foreach ($array_item) {
        if (is_array($inner)) {
            foreach ($inner as $value) {
                echo "$value \n";
            }
        }    
    }
}

编辑:另外,$ inner [0]不是数组。 $ inner是数组。

答案 2 :(得分:0)

我会使用implode,http://php.net/manual/en/function.implode.php

if (is_array($array_item[0])) {
    echo implode(PHP_EOL, $array_item[0]);
}

我看到有人发表评论说他只希望输出第一个数组而不是所有数组。

{{1}}

答案 3 :(得分:0)

你永远不知道什么可以解决问题

+----------+-------+------------+-------------+
| Doc_Type | Batch | Soaking_In | Soaking_Out |
+----------+-------+------------+-------------+
| AA       |     1 |      20,50 |        0,00 |
| BB       |     2 |       0,00 |       10,00 |
| AA       |     3 |       6,00 |        0,00 |
| BB       |     4 |       0,00 |        7,00 |
| AA       |     5 |       8,00 |        0,00 |
+----------+-------+------------+-------------+

$array_group = array(); if (isset($array_item[0]) and is_array($array_item[0])) { foreach ($array_item[0] as $value) { $array_group[] = $value; } 应输出

$array_group