簡體   English   中英

PHP-如何訪問嵌套數組中的特定數組值?

[英]PHP - How do I access specific array values in nested array?

我有一個像這樣的數組:

    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()提供了無效的參數。

我以為那肯定行得通,我在做什么錯?

在您的代碼中$inner[0]是內部數組元素之一,例如510 你不能繞過去。

如果只想循環$array_item[0] ,請不要循環整個數組。

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

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是數組。

我會使用爆破, http://php.net/manual/en/function.implode.php

foreach($array_items as $items) {
    echo implode(', ', $items);
}

我看到有人評論說他只希望輸出第一個數組,而不是全部。

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

你永遠無法分辨出什么可以解決問題

$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應該輸出

Array
(
    [0] => 510
    [1] => 984
    [2] => 1045
    [3] => 2068
    [4] => 1054
    [5] => 673
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM