2017-03-04 123 views
1

我有一些代码在一维数组工作:升级1维数组二维数组

$colour_array = [ 
    "1" => "#9E2A2B", 
    "2" => "#3E5C76", 
    "3" => "#335C67", 
]; 

$colour1 = $colour_array[$colourdata]; 
... 

我希望能够在我的阵列存储两种颜色对于每个编号,像这我已经尝试了很多东西,沿着这条线:

$colour_array = [ 
    "1" => "#9E2A2B","#3E5C76", 
    "2" => "#3E5C76","#3E5C76", 
    "3" => "#335C67","#3E5C76", 
]; 

$colour1 = $colour_array[$colourdata[1]]; 
$colour2 = $colour_array[$colourdata[2]]; 

但是我真的不明白多维数组。

+2

只是包装自己的价值观:' “#9E2A2B”, “#3E5C76”'到一个数组:'[ “#9E2A2B”,“#3E5C76 “]'? – Rizier123

回答

2

你可以在阵列创建阵列:

$colour_array = array(
    "1" => array("#9E2A2B","#3E5C76"), 
    "2" => array("#3E5C76", "#3E5C76"), 
    "3" => array("#335C67", "#3E5C76") 
); 

或与其相关的阵列

$colour_array = array(
    "1" => array("red" => "#9E2A2B","bleu" => "#3E5C76"), 
    "2" => array("green" => "#3E5C76", "orange" => "#3E5C76"), 
    "3" => array("purple" => "#335C67","yellow" => "#3E5C76") 
); 

var_export($colour_array); 

输出:

array (
    1 => 
    array (
    'red' => '#9E2A2B', 
    'bleu' => '#3E5C76', 
), 
    2 => 
    array (
    'green' => '#3E5C76', 
    'orange' => '#3E5C76', 
), 
    3 => 
    array (
    'purple' => '#335C67', 
    'yellow' => '#3E5C76', 
), 
) 

如果你想访问某个值,我例如,做这样的事情:

echo $colour_array[1]['blue']; 

输出:

#3E5C76

希望它能帮助!

PS:这里的十六进制值与颜色名称不匹配。这只是为了举例。

+0

嗨,谢谢你。它确实看起来不错,但我给这个数组添加了一个数字,即1,2或3作为我的''colourdata'''值,我希望能够解决它,就像$ colour_array [1] [ 1];为了弄清楚颜色,我不太了解它的名字 - 是否有可能回到数字? - 我看到它现在被编辑了,如果我们不使用名字,我该如何解决第一个问题以获得价值? – Jimmy

+0

@Jimmy是的,请参阅我答案的最后编辑。第一个解决方案就像你想要的。用'$ colour_array [1] [1]'来访问它。对于名称,它是关联数组,因为您在第一级或数组中使用它。键值被替换为名称而不是整数。 – JazZ

+0

这是完美的,谢谢 – Jimmy

1

请试试这个,也许这用于你

$colour_array = [ 
     "1" => "#9E2A2B", 
     "2" => "#3E5C76", 
     "3" => "#335C67", 
    ]; 
    foreach ($colour_array as $key => $color) { 
     echo "<pre>"; print_r($color); 
     $colour_array[$key] = array(); 
     array_push($colour_array[$key], $color); 
     array_push($colour_array[$key], "#ffffff"); 

    } 
    echo "<pre>"; print_r($colour_array);