繁体   English   中英

将数组存储在变量中

[英]Storing array in a variable

我正在尝试替换下面的代码

$Palette = array(
                 "0"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),
                 "1"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),
                 "2"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),
                 "3"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),
                 "4"=>array("R"=>176,"G"=>46,"B"=>224,"Alpha"=>100),
                 );

RGB值相似但不同。 我已经写了下面的代码作为替换:

$x = '0';
$incrementarray = array("0"=>"A","1"=>"B","2"=>"C","3"=>"D","4"=>"E");

do
{
    if ($correct == $incrementarray[$x])
    {
        $colour[$x] = '"'.$x.'"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),';
    }
    else 
    {
    $colour[$x] =  '"'.$x.'"=>array("R"=>255,"G"=>51,"B"=>51,"Alpha"=>100),';
    }
    $x++;
}
while ($x <= '4');

$allcolours = $colour[0].$colour[1].$colour[2].$colour[3].$colour[4];

但是,当我使用下面的代码行将其实现到脚本中时,它不起作用。

$Palette = array($allcolours);
$x = '0';
$incrementarray = array("0"=>"A","1"=>"B","2"=>"C","3"=>"D","4"=>"E");

do
{
    if ($correct == $incrementarray[$x])
    {
        $Pallete[$x] = array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100);
    }
    else 
    {
    $Pallete[$x] =  array("R"=>255,"G"=>51,"B"=>51,"Alpha"=>100);
    }
    $x++;
}
while ($x <= '4');

$ x有点过多的用法。
事实上,您根本不需要该变量

$Palette = array();
$incrementarray = array("0"=>"A","1"=>"B","2"=>"C","3"=>"D","4"=>"E");
foreach ($incrementarray as $value)
{
    if ($correct == $value)
    {
        $Palette[] = array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100);
    }
    else 
    {
        $Palette[] = array("R"=>255,"G"=>51,"B"=>51,"Alpha"=>100);
    }
}

您需要创建数组, 而不是创建数组的PHP代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM