2013-04-14 168 views
0

我试图与该RGB类似的东西,但不同的值替换下面存储阵列中的一个变量

$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), 
       ); 

的代码。我已经写了下面的代码,只要更换:

$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); 

回答

0
$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'); 
0

有$ 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代码来创建数组变量。