嗨,我有以下所有东西(这是我尝试的一个例子,我实际拥有的是更大的分配):
$array= array();
array_push($array,$var['bookshopname']);
$array[$var['bookshopname']]=array('opentime'=>$var1,'closetime'=>$var2);
foreach($array as $var)
{
print_r($var);
}
我得到:
Storename1
Array ( [opentime] => 12 [closetime] => 17 )
Storename2
Array ( [opentime] => 13 [closetime] => 19 )
所以如果我计算数组,有4个元素如果我尝试以下
foreach($array as $var)
{
print_r($var['opentime']);
}
它在第一个结果(Storename1)上中断。
我想要以下
array(
Storename1 => array(opentime => ...)
Storename2 => array(opentime => ...)
)
我得到了这个:
array(
[0] => Storename1[Storename1] => Array ( [opentime ] =>....
[1] => Storename2[Storename2] => Array ( [opentime ] =>....
)
我不太明白为什么它会用的名字创建这两个额外的结果
响应Oriol
当我试图进一步更新时
例如:
$array[$var['bookshopname']] =
array('opentime'=>$array[$var['bookshopname']]['opentime']+1,
'closetime'=>$array[$var['bookshopname']]['closetime']-2);
然后它不更新值,而只是用我试图添加或减去的值替换
只需使用
$array= array();
$array[$var['bookshopname']]=array('opentime'=>$var1,'closetime'=>$var2);
由于,您的代码会创建额外的条目
array_push($array,$var['bookshopname']);
也许你应该读http://php.net/manual/en/function.array-push.php更好地理解array_push
做
编辑:
如果你只想修改值,试试这个
$array[$var['bookshopname']]['opentime'] += 1;
$array[$var['bookshopname']]['closetime'] -= 2;