这是数组:
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);
trying尝试编写一个用 SplFixedArray 制作多维数组的代码,但我不能!
我已经尝试过此代码(循环之前),但无效:
$query_params = new SplFixedArray($this->counter);
谢谢!
答案 0 :(得分:1)
此处的问题是$query_params[] = ...;
无法与SplFixedArray
一起使用。当您执行$query_params[] = ...;
时,您将在之后添加元素。
SplFixedArray
count()
始终返回&#34;已修复&#34;大小,所以当你推动时,你试图在其范围外添加 元素。
试试这个:
$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());
}
答案 1 :(得分:0)
你创建数组的方式很好,如果你的数据库服务器接受这些行,Laravel会接受它,但看看你的代码我看到了一些奇怪的东西:
self::insert($query_params);
告诉我这是一个雄辩的模型,还是我错了?
$this->counter
这个模型有一个计数器,所以这不是一个干净的模型...
array('ID' => $this->ID , 'coupon' => make_random());
您是否一次又一次尝试self::insert
ID?这对你的桌子有用吗?