Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中获取多维混合数组?_Php_Arrays_Multidimensional Array_Associative Array - Fatal编程技术网

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

如何在php中获取多维混合数组?,php,arrays,multidimensional-array,associative-array,Php,Arrays,Multidimensional Array,Associative Array,我将此数组存储在变量中:- 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] => 1

我将此数组存储在变量中:-

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>";
    }
}
这就是我所期待的:

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/>";
    }
}

更新问题更新。

试试这个:不包括@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/>";
    }
}

更新时问题已更新。

问题在于
日期
字段被解释为一个层。跳过非数字层,如下所示:

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>";
    }
}
foreach($tables作为$table)
{
foreach($index=>$tier的表格)
{
如果(!是数值($index))
继续;
echo$tier[0]。“
”; echo$tier[1]。“
”; echo$tier[2]。“
”; echo$tier[3]。“
”; } }
下面是一个这样工作的例子:

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 >
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作为$table)
php>{
php{foreach($index=>$tier的表)
php{{
php{if(!is_numeric($index))
php{继续;
php{
php{echo$tier[0]。“
”; php{echo$tier[1]。“
”; php{echo$tier[2]。“
”; php{echo$tier[3]。“
”; php{} php{} 1
34
2
55
2
55
55
100
3
60
100
500
php>
问题在于
日期
字段被解释为一个层。跳过以下非数字层:

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>";
    }
}
foreach($tables作为$table)
{
foreach($index=>$tier的表格)
{
如果(!是数值($index))
继续;
echo$tier[0]。“
”; echo$tier[1]。“
”; echo$tier[2]。“
”; echo$tier[3]。“
”; } }
下面是一个这样工作的例子:

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 >
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作为$table)
php>{
php{foreach($index=>$tier的表)
php{{
php{if(!is_numeric($index))
php{继续;
php{
php{echo$tier[0]。“
”; php{echo$tier[1]。“
”; php{echo$tier[2]。“
”; php{echo$tier[3]。“
”; php{} php{} 1
34
2
55
2
55
55
100
3
60
100
500
php>
foreach($tables作为$table)
{
foreach($key=>$tier的表)
{
如果($key!=“日期”)
{
echo$tier[0]。“
”; echo$tier[1]。“
”; echo$tier[2]。“
”; echo$tier[3]。“
”; } } }
您的代码非常接近。

foreach($tables as$table)
{
foreach($key=>$tier的表)
{
如果($key!=“日期”)
{
echo$tier[0]。“
”; echo$tier[1]。“
”; echo$tier[2]。“
”; echo$tier[3]。“
”; } } }

您的代码非常接近。

我假设您的数组只有0个索引,因此直接在此处调用该数组并传递数组键
日期

比较“日期”时使用!==

不要使用!=,它将无效,因为“日期”将转换为int
0
,因此“日期”和0将相等

foreach($k=>$tier的表[0]{
如果($k!=‘日期’){
echo$tier[0]。“
”; echo$tier[1]。“
”; echo$tier[2]。“
”; echo$tier[3]。“
”; } }
我假设您的数组只有0个索引,所以直接在这里调用该数组并传递数组键
日期

比较“日期”时使用!==

不要使用!=,它将无效,因为“日期”将转换为int
0
,因此“日期”和0将相等

foreach($k=>$tier的表[0]{
如果($k!=‘日期’){
echo$tier[0]。“
”; echo$tier[1]。“
”; echo$tier[2]。“
”; echo$tier[3]。“
”; } }
更新@RivnatNasah答案

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

更新@RivnatNasah答案

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


你只需要在循环时排除
日期
键,不是吗?让我知道我的答案是否让一切都完美运行。请不要这样做。让人们接受答案是好的,但不要试图强迫人们接受你自己的答案……先生,我投了反对票,我不知道为什么。@RivnatNasah坦白地说,我也不知道(尽管就我个人而言,我会将其以不同的方式进行布局,并尽可能使其接近原作).你只需要在循环时排除
日期
键,不是吗?让我知道我的答案是否使一切都完美。请不要这样做。让人们接受答案是好的,但不要试图强迫人们接受你自己的答案……先生,我投了反对票,我不知道为什么。@RivnatNasah坦白说,我也不知道(尽管就我个人而言,我会将其以不同的方式进行布局,并尽可能使其接近原作)。我投了反对票,因为对于OPs问题,这是错误的。@Webeng读了这个问题。读了其他答案。@Paul no。
$table
是一个数组。@Webeng你的支票应该在第二个foreach循环中。@Webeng,我同意@Jon Stirling:
$tables
$key
是0,
$table
是数组。我投了反对票,因为OPs问题,这是错误的。@Webeng阅读了问题。阅读了其他答案。@Paul没有。
$table
是一个数组。@Webeng您的检查应该在第二个foreach循环内。@Webeng,我同意@Jon Stirling:
$tables
$key
是0,
$table
是数组。您的代码不工作,它正在显示2 5555 100 3 60 100 500@SumitBhatia,使用
如果($k!=='date')
您的代码不工作,它将显示2555100360100500@SumitBhatia,使用
if($k!=='date')