![](/img/trans.png)
[英]php multidimensional SplFixedArray declaration is throwing fatal error
[英]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.