PHP用键循环多维数组

时间:2016-04-20 07:24:19

标签: php arrays loops multidimensional-array

我有一个数组,其中包含不同的数组值。我想循环遍历这些数组以获取所有值但由于某种原因它只会遍历第一个数组。

这里是数组的样子: 这个数组的名称是插槽。

Array
(
    [41] => Array
        (
            [0] => Array
                (
                    [attractie] => attractie1
                    [start] => 0930
                    [end] => 1200
                    [personen] => 
                    [catering] => 1
                    [bedrijfsnaam] => attractie1
                    [link] => http:
                    [color] => dd0330
                )

            [1] => Array
                (
                    [attractie] => attractie1
                    [start] => 1000
                    [end] => 1230
                    [personen] => 
                    [catering] => 1
                    [bedrijfsnaam] => Bedrijf2
                    [link] => http:
                    [color] => e49fca
                )
        )

    [52] => Array
        (
            [0] => Array
                (
                    [attractie] => attractie2
                    [start] => 0930
                    [end] => 1030
                    [personen] => 
                    [catering] => 1
                    [bedrijfsnaam] => Bedrijf4
                    [link] => http:
                    [color] => f7e300
                )

            [1] => Array
                (
                    [attractie] => attractie2
                    [start] => 0930
                    [end] => 1030
                    [personen] => 
                    [catering] => 0
                    [bedrijfsnaam] => bedrijf5
                    [link] => http:
                    [color] => f78f1e
                )

        )

)

所以这就是我的循环:

$i=0;
foreach($slots[$attractieIDs[$i]] as $s){

        $myOrders[] = array( 'attractie' => $s['attractie'],
                             'name' => $s['bedrijfsnaam'],
                             'start' => $s['start'],
                             'end' => $s['end'],
                             'link' => $s['link'], 
                             'personen' => $s['personen'],
                             'catering' => $s['catering'],
                             'color' => $s['color'],
                           ); 
         $i++;
}

attractieID是一个数组,其中包含ID(41和52)。

当我打印出$myOrders时,我只能看到ID为41的数组的值,它不会转到带有新ID的下一个数组。

任何人都知道如何解决这个问题?

非常感谢提前!

4 个答案:

答案 0 :(得分:1)

您当前的代码会将41和52中的条目合并为一个数组,您将无法分辨哪个是哪个。

{{1}}

答案 1 :(得分:1)

你可以用这个:

DOM

eval.in

上查看它

答案 2 :(得分:0)

试试这个循环:

foreach($slots as $outer_arr){

    foreach($outer_arr as $s) {
        $myOrders[] = array( 'attractie' => $s['attractie'],
              'name' => $s['bedrijfsnaam'],
              'start' => $s['start'],
              'end' => $s['end'],
              'link' => $s['link'], 
              'personen' => $s['personen'],
              'catering' => $s['catering'],
              'color' => $s['color'],
        ); 

    }


}

但仍然不清楚你想要的输出。

答案 3 :(得分:0)

试试这个。无论你有什么索引,这个循环都会在你的数组中输出任何值。

<?php
$test = array(
    '41' => array( 
        array('attractie' => 'attractie1',
             'start' => '0930',
             'end' => '1200',
             'personen' => NULL,
             'catering' => '1',
             'bedrijfsnaam' => 'attractie1',
             'link' => 'http:',
             'color' =>'dd0330'),
        array('attractie' => 'attractie1',
             'start' => '1000',
             'end' => '1230',
             'personen' => NULL,
             'catering' => '1',
             'bedrijfsnaam' => 'Bedrijf2',
             'link' => 'http:',
             'color' =>'e49fca'),
            ),
    '51' => array( 
        array('attractie' => 'attractie2',
             'start' => '0930',
             'end' => '1030',
             'personen' => NULL,
             'catering' => '1',
             'bedrijfsnaam' => 'Bedrijf4',
             'link' => 'http:',
             'color' =>'f7e300'),
        array('attractie' => 'attractie2',
             'start' => '0930',
             'end' => '1030',
             'personen' => NULL,
             'catering' => '0',
             'bedrijfsnaam' => 'bedrijf5',
             'link' => 'http:',
             'color' =>'f78f1e'),
            )
    );

foreach ($test as $a => $val) {
    echo "<b>Index $a</b><br><br>";
    foreach ($val as $b) {
        foreach ($b as $key => $value) {
            echo "<b>$key</b> - $value<br>";
        }
    }
    echo "<br><br>";
}
?>

<强>输出:

Index 41

attractie - attractie1
start - 0930
end - 1200
personen - 
catering - 1
bedrijfsnaam - attractie1
link - http:
color - dd0330
attractie - attractie1
start - 1000
end - 1230
personen - 
catering - 1
bedrijfsnaam - Bedrijf2
link - http:
color - e49fca


Index 51

attractie - attractie2
start - 0930
end - 1030
personen - 
catering - 1
bedrijfsnaam - Bedrijf4
link - http:
color - f7e300
attractie - attractie2
start - 0930
end - 1030
personen - 
catering - 0
bedrijfsnaam - bedrijf5
link - http:
color - f78f1e