如何在php中获取多维混合数组?

How to fetch multi-dimensional mix array in php?

我将这个数组存储在一个变量中:-

Array ( 
  [0] => Array ( 
          [date] => 06/01/2016 - 06/30/2016 
          [0] => Array ( [0] => 1 [1] => 34 [2] => 2 [3] => 55 ) 
          [1] => Array ( [0] => 2 [1] => 55 [2] => 55 [3] => 100 ) 
          [2] => Array ( [0] => 3 [1] => 60 [2] => 100 [3] => 500 ) 
  ) 
) 

这是我的打印代码:

foreach($tables as $table)
{
    foreach($table as $tier)
    {
        echo $tier[0]."<br>";
        echo $tier[1]."<br>";
        echo $tier[2]."<br>";
        echo $tier[3]."<br>";
    }
}

这是打印的内容:

0
6
/
0
1
34
2
55
2
55
55
100
3
60
100
500

这就是我所期待的:

1
34
2
55
2
55
55
100
3
60
100
500

如何使用 foreach() 获得想要的结果?

试试这个:排除@Jon Stirling 建议的日期。

foreach($tables as $table){
    foreach($table as $k => $tier){
        if($k !== 'date')
            echo $tier[0]."<br/>".$tier[1]."<br/>".$tier[2]."<br/>".$tier[3]."<br/>";
    }
}

新版本来了,之前的版本在 if 条件下添加 !== 后效果很好。

$tables = array(
            array ( 
              'date' => "06/01/2016 - 06/30/2016",
              array ( 1, 34, 2, 55 ),
              array ( 2, 55, 55, 100 ), 
              array ( 3, 60, 100, 500 )
            )
        );
foreach($tables as $table){
    foreach($table as $k => $tier){
        if(!is_array($tier))
            continue;
        foreach($tier as $val)
            echo $val."\n";
    }
}

已更新问题。

问题是 date 字段被解释为层。像这样跳过非数字层:

foreach ($tables as $table)
{
    foreach ($table as $index => $tier)
    {
       if (!is_numeric($index))
           continue;

        echo $tier[0]."<br>";
        echo $tier[1]."<br>";
        echo $tier[2]."<br>";
        echo $tier[3]."<br>";
    }
}

下面是这个工作的一个例子:

php > $tables = array(0 => array('date' => '06/01/2016 - 06/30/2016', 0 => array(1, 34, 2, 55), 1 => array(2, 55, 55, 100), 2 => array(3, 60, 100, 500)));

php > foreach ($tables as $table)
php > {
php {     foreach ($table as $index => $tier)
php {     {
php {        if (!is_numeric($index))
php {            continue;
php {
php {         echo $tier[0]."<br>";
php {         echo $tier[1]."<br>";
php {         echo $tier[2]."<br>";
php {         echo $tier[3]."<br>";
php {     }
php { }
1<br>34<br>2<br>55<br>2<br>55<br>55<br>100<br>3<br>60<br>100<br>500<br>
php >
foreach($tables as $table)
{
    foreach($table as $key => $tier)
    {
        if ($key !== 'date')
        {
            echo $tier[0]."<br>";
            echo $tier[1]."<br>";
            echo $tier[2]."<br>";
            echo $tier[3]."<br>";
       }
    }
}

您的代码非常接近。

我假设你的数组只有 0 个索引,所以直接在这里调用那个数组并传递数组键 date

use !== when compare "date"

don't use != ,it will be invalid because "date" will be convert to int 0 so will be equal in "date" and 0

foreach ($table[0] as $k=>$tier) {
    if($k !== 'date'){
        echo $tier[0]."<br>";
        echo $tier[1]."<br>";
        echo $tier[2]."<br>";
        echo $tier[3]."<br>";
     }
}

更新@RivnatNasah 的回答

foreach ($tables as $table) {
    foreach ($table as $key => $values){
        if ($key !== 'date') {
            foreach ($values as $value) {
                echo $value . PHP_EOL;
            }
        }
    }
}