大家好我拥有以下内容(这是我正在尝试的实际情况的一个例子):
$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);
然后它不会更新值,而只是替换为我尝试添加或减去的值
答案 0 :(得分:3)
只需使用
$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;