0

こんにちは、私は次のものを持っています(これは、私が実際に持っているものをより大きくしようとしている例です):

$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 ] =>....
      )

名前でこれら2つの追加の結果を作成する理由がよくわかりません

オリオールに応えて

さらに先に更新しようとすると

例えば:

$array[$var['bookshopname']] = 
      array('opentime'=>$array[$var['bookshopname']]['opentime']+1,
            'closetime'=>$array[$var['bookshopname']]['closetime']-2);

次に、値を更新するのではなく、加算または減算しようとしている値に置き換えるだけです

4

1 に答える 1

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;
于 2013-08-12T23:52:35.953 に答える