亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果鍵名已經注冊,添加值而不是替換舊的 - PHP

如果鍵名已經注冊,添加值而不是替換舊的 - PHP

PHP
哈士奇WWW 2021-09-18 11:03:39
我正在嘗試檢查在特定時間范圍內預訂了多少活動。所以,我試圖創建一個數組,time_stamp作為一個數組和space value一個值,如下所示:$數據<pre>Array(    [0] => stdClass Object        (            [id] => 7            [start] => 2019-06-30            [end] => 2019-06-30            [start_time] => 11:00:00            [end_time] => 12:00:00            [hall_space] => 2        )    [1] => stdClass Object        (            [id] => 9            [start] => 2019-06-30            [end] => 2019-06-30            [start_time] => 11:00:00            [end_time] => 12:00:00            [hall_space] => 2        ))</pre所以,創建數組$booked = array();foreach($data as $dk => $dv){                $time_stamp = strtotime($dv->start.' '.$dv->start_time).'_'.strtotime($dv->end.' '.$dv->end_time).'_'.$dk;                $booked[$time_stamp] = $dv->rink_space;}因此,這里存儲的數據如下:<pre>Array(    [1561892400_1561896000_0] => 2    [1561892400_1561896000_1] => 2)</pre>但是,如果我刪除這部分,.'_'.$dk它將用第二個索引替換第一個索引并僅保存一個索引,如下所示:<pre>Array(    [1561892400_1561896000] => 2)</pre>在這種情況下,如果出現相同的索引,而不是替換,我想添加值,使值變為 4 而不是 2,如下所示:<pre>Array(    [1561892400_1561896000] => 4)</pre>
查看完整描述

1 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

有幾種方法可以解決它,一個簡單的方法是檢查值是否存在(使用isset()),如果存在,只需將其添加進去,如果不存在,則將其設置為新值...


$booked = array();

foreach($data as $dk => $dv){

    $time_stamp = strtotime($dv->start.' '.$dv->start_time).'_'.strtotime($dv->end.' '.$dv->end_time);

    if ( isset($booked[$time_stamp]) )  {

        $booked[$time_stamp] += $dv->rink_space;

    }

    else {

        $booked[$time_stamp] = $dv->rink_space;

    }

}

(我已經刪除了時間戳的結尾,這是我假設您試圖避免這樣做的)。


查看完整回答
反對 回復 2021-09-18
  • 1 回答
  • 0 關注
  • 158 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號