2016-03-03 59 views
0

好吧,我有点迷路。这里是我的代码,但是如何摆脱PHP错误,告诉我这是非法的偏移类型?我试图在颜色中循环。PHP中的非法偏移类型错误

$color = array(

    [0]=>"red", 
    [1]=>"cherry", 
    [2]=>"orange", 
    [3]=>"amber", 
    [4]=>"blue", 
    [5]=>"sapphire", 
    [6]=>"green", 
    [7]=>"forest green", 
    [8]=>"purple", 
    [9]=>"lavender"); 
//starts at index 0 

for($colorCount=0; $colorCount <=9; $colorCount++){ 

    if ($colorCount == 9){ 
     break; 
    } 
    echo implode(", ", $color).", "; 

} 
+2

该数组定义是无效的语法。这是你的实际代码吗? – Halcyon

+0

删除您的索引周围的括号。 – Sammitch

+0

删除方括号并加上引号或简单的数字 –

回答

1

我认为可能发生的事情是,因为PHP现在支持与[]短列表符号。它解析[0]array(0),然后尝试将其用作数组中的键,这是不允许的。这将解释确切的错误信息。

声明你的阵列,如:

$color = array(
    0 => "red", 
    1 => "cherry", 
    2 => "orange", 
    3 => "amber", 
    4 => "blue", 
    5 => "sapphire", 
    6 => "green", 
    7 => "forest green", 
    8 => "purple", 
    9 => "lavender" 
); 

你甚至可以离开过的数字,做:

$color = array(
    "red", 
    "cherry", 
    "orange", 
    "amber", 
    "blue", 
    "sapphire", 
    "green", 
    "forest green", 
    "purple", 
    "lavender" 
); 
+0

好吧!这实际上有很大的帮助,谢谢! – Xiggy

1
$color = array(

     '0'=>"red", 
     '1'=>"cherry", 
     '2'=>"orange", 
     '3'=>"amber", 
     '4'=>"blue", 
     '5'=>"sapphire", 
     '6'=>"green", 
     '7'=>"forest green", 
     '8'=>"purple", 
     '9'=>"lavender" 
     ); 
foreach ($color as $key => $res) { 
     print_r($res); 
} 
+0

添加引号不会做任何事情,PHP将解释键看起来像整数作为整数原始代码似乎也意味着要使用整数 – Halcyon

+0

作为第一我只是想说,数组定义是无效的 和我发布我的答案的原因是..如果他如果数组有效,则需要其他任何东西。谢谢 – santosh