簡體   English   中英

多維SplFixedArray

[英]Multidimensional SplFixedArray

這是數組:

Array
(
    [0] => Array
        (
            [ID] => 74
            [coupon] => fCHzP
        )

    [1] => Array
        (
            [ID] => 74
            [coupon] => WKHaY
        )
)

...等等

這是使該數組每次動態(通過給定計數器)然后保存到db表中的代碼:

for($i=0;$i < $this->counter;$i++){

  $query_params[ ] = array('ID' => $this->ID , 'coupon' => make_random());

}
self::insert($query_params);

我試圖編寫一個代碼,使用SplFixedArray制作多維數組,但我不能!

我已經嘗試過此代碼( before loop ),但是不起作用:

$query_params = new SplFixedArray($this->counter);

謝謝 !

這里的問題是$query_params[] = ...; 不適用於SplFixedArray 當您執行$query_params[] = ...; ,您要在最后一個元素之后添加元素。

使用SplFixedArray count()始終返回“固定”大小,因此,當您按下按鈕時,您將嘗試添加超出其范圍的元素。

嘗試這個:

$query_params = new SplFixedArray($this->counter);
for($i=0; $i < $this->counter; $i++){
  $query_params[$query_params->key()] = array('ID' => $this->ID , 'coupon' => make_random());
  $query_params->next();
}

或者,更好的是:

$query_params = new SplFixedArray($this->counter);
for($i=0; $i < $this->counter; $i++){
  $query_params[$i] = array('ID' => $this->ID , 'coupon' => make_random());
}

創建數組的方式很好,如果您的數據庫服務器接受這些行,Laravel將接受它,但是查看代碼,我會看到一些奇怪的事情:

self::insert($query_params);

告訴我這是雄辯的榜樣,還是我錯了?

$this->counter

這個模型上面有一個計數器,所以這不是一個干凈的模型...

array('ID' => $this->ID , 'coupon' => make_random());

您正在嘗試self::insert一次又一次self::insert ID嗎? 這對您的餐桌有用嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM