如何在关联数组中循环变量?

时间:2019-12-29 23:30:38

标签: php

请原谅这个问题,因为我不确定该用什么术语。

我正在尝试创建一个颜色样本网格,并且正在使用带有关联数组的php foreach循环。我正在尝试找出如何为每种颜色设置变量并将其包含在数组中的方法,因为我的代码当前无法使用

<?php
  $yellow = 'background: #FECD06';    
  $green = 'background: #069A48'; 
  $blue = 'background: #6BC9CB'; 
?>

<?php foreach ($colourSwatch as $swatch => $colour): ?>    

    <div class="colour">
        <div class="colour_box" style="background: <?php echo $colour[colour]; ?>"></div>
        <p><?php echo $colour[caption]; ?></p> 
    </div>

<?php endforeach ?>

数组

$colourSwatch = array(
colour1 => array(
    colour => $yellow,
    caption => "RAL 1023"
),

colour2 => array(
    colour => $green,
    caption => "RAL 2004"
),

colour3 => array(
    colour => $blue,
    caption => "RAL 3020"
)
)

1 个答案:

答案 0 :(得分:1)

您正在犯一些错误。首先,在foreach ($colourSwatch as $swatch => $colour)中,当使用... => ...时,它们始终为key and value pairs。由于您不需要知道密钥,因此只需使用foreach ($colourSwatch as $colour)

第二,在显示的数组中,键名周围没有引号(单引号或双引号),这也不起作用。

最后,如果要像使用$colour[colour]一样访问数组中的项,则还必须将该项也放在引号中,也要单引号或双引号,所以$colour["colour"]还是要用引号引起来。

这是您的代码,其中包含更正内容:

<?php

$yellow = '#FECD06';    
$green = '#069A48'; 
$blue = '#6BC9CB'; 

$colourSwatch = array(
 "colour1" => array(
    "colour" => $yellow,
    "caption" => "RAL 1023"
),

"colour2" => array(
    "colour" => $green,
    "caption" => "RAL 2004"
),

"colour3" => array(
    "colour" => $blue,
    "caption" => "RAL 3020"
));
?>

<?php foreach ($colourSwatch as $colour): ?>    

    <div class="colour">
        <div class="colour_box" style="background: <?php echo $colour['colour']; ?>">
        <p><?php echo $colour['caption']; ?></p> 
        </div>
    </div>

<?php endforeach ?>

或者看到live example

相关问题