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

时间:2013-08-12 23:48:58

标签: 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);

然后它不会更新值,而只是替换为我尝试添加或减去的值

1 个答案:

答案 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;