将多维关联数组插入到多维关联PHP中


Insert multidimensional associative array into multidimensional associative PHP

嗨,我有以下所有东西(这是我尝试的一个例子,我实际拥有的是更大的分配):

$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;