繁体   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