簡體   English   中英

使用PHP遍歷多個數組

[英]Loop through multiple arrays with PHP

我有幾個數組: $n$p$a

每個數組都相同:

$n = array()
$n['minutes'] = a;
$n['dollars'] = b;
$n['units'] = c;

$p = array()
$p['minutes'] = x;
$p['dollars'] = y;
$p['units'] = z;

等等...

我也有一個像這樣的簡單數組:

$status = array('n', 'p', 'a');

我可以使用$ status數組遍歷其他數組嗎?

就像是:

foreach($status as $key => $value) {
    //display the amounts amount here
};

所以我最終會得到:

a
x

b
y

c
z

或者,我是否需要以某種方式將所有陣列合並為一個?

foreach($n as $key => $value) {
    foreach($status as $arrayVarName) (
        echo $$arrayVarName[$key],PHP_EOL;
    }
    echo PHP_EOL;
}

只要$ status中定義的所有數組都存在,並且在$ n,$ p和$ a中具有匹配的鍵,就可以工作

已更新為允許$ status

采用:

$arrayData=array('minutes','dollars','units');
foreach($arrayData as $data) {
    foreach($status as $value) {
       var_dump(${$value}[$data]);
    }
}

您可以在while循環中使用next()

示例: http//ideone.com/NTIuJ

編輯:

與其他答案不同,此方法不管鍵是否匹配都有效,即使數組是列表,也不是字典。

如果我正確理解了您的目標,那么我將從將每個數組p / n / ...放入一個數組開始:

$status = array();

$status['n'] = array();
$status['n']['minutes'] = a;
$status['n']['dollars'] = b;
$status['n']['units'] = c;


$status['p'] = array();
$status['p']['minutes'] = a;
$status['p']['dollars'] = b;
$status['p']['units'] = c;

然后,您可以使用以下命令讀取每個數組:

foreach($status as $name => $values){
    echo 'Array '.$name.': <br />';
    echo 'Minutes: '.$values['minutes'].'<br />'; 
    echo 'Dollars: '.$values['dollars'].'<br />';
    echo 'Units: '.$values['units'].'<br />';
}

有關更多信息,請嘗試使用“ 多維數組”

暫無
暫無

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

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