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,但我不能!

我已经尝试了这个代码(在循环之前),但是不起作用:

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

谢谢!

这里的问题是$query_params[] = ...;不与SplFixedArray工作。当您执行$query_params[] = ...;时,您在最后一个元素之后添加一个元素

对于SplFixedArray, count()总是返回"固定"大小,所以当你push时,你试图在范围之外添加一个元素

试试这个:

$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);

告诉我这是一个Eloquent模型,还是我错了?

$this->counter

这个模型上有一个计数器,所以这不是一个干净的模型…

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

您试图一次又一次地self::insert ID ?你的桌子可以吗?

相关内容

  • 没有找到相关文章

最新更新