我的问题有两个部分。第一个问题,可以这种方式分配多维数组:
$sandwhich => array(
'bread', 'meat', 'tomato'
);
$cereal => array(
'milk', 'cherrios', 'bannana'
);
$food = array(
$sandwhich, $cereal
);
我的第二个问题是,上面的$food
数组是否等同于:
$food = array(
$sandwhich => array(
'bread', 'meat', 'tomato'
)
$cereal => array(
'milk', 'cherrios', 'bannana'
)
);
谢谢,
答案 0 :(得分:1)
不,他们不等同......
第一个只定义一个包含另外两个数组的数组,每个数组包含3个字符串。这与你完全写出来没有什么不同。
var time = 5;
function functionary() {
var red = document.getElementById('redL')
var yellow = document.getElementById('yellowL')
var green = document.getElementById('greenL')
var Colours = ["#FF0000","#FFB300","#05FF0D","#7A0000","#7A5C00","#008000"];
setInterval(function(){
if(time == 5){
red.style.background = Colours[0]; // May need spacebar between index number
yellow.style.background = Colours[4];
green.style.background = Colours[5];
time = 1;
}
else if(time == 2 || time == 4){
red.style.background = Colours[3];
yellow.style.background = Colours[1];
green.style.background = Colours[5];
}
else if(time == 3){
red.style.background = Colours[3];
yellow.style.background = Colours[4];
green.style.background = Colours[2];
}, 3000)
};
第二个会触发$food = array();
$food[0] = array();
$food[0][0] = 'bread';
$food[0][1] = 'meat';
etc...
$food[1][2] = 'bannana';
,因为您尚未定义undefined variable
或$sandwich
,并且您将两个子数组分配给空字符串键:
$cereal
由于这两个键是相同的(空字符串),你最终会得到一个包含一个其他数组的数组,最后一个数组。
如果先前将$food = array(
"" => array(...),
"" => array(...)
);
或$sandwich
定义为数组,那么您将获得非法的偏移类型警告并最终得到一个空数组。
答案 1 :(得分:1)
首先,我们无法使用=>
进行分配,而是使用运算符=
。
对于第一部分,这是正确的语法:
$sandwhich = array('bread', 'meat', 'tomato');
$cereal = array('milk', 'cherrios', 'bannana');
$food = array();
$food[] = $sandwhich;
$food[] = $cereal;
第二部分:
$food = array(
'sandwich' => array('bread', 'meat', 'tomato'),
'cereal' => array('milk', 'cherrios', 'bannana')
);