小编JMa*_*aes的帖子

返回NULL的空数组的array_length()

我正在PL/pgSQL中开发一些存储过程,其中一些给我一些问题.我正在开发的sprocs通过参数接收一个数组,我在FOR LOOP中使用它来获取它的所有元素.要定义FOR LOOP的上限,我使用array_length函数.

FOR i IN 1..array_length(array,1) LOOP

   --array[i] something in here

END LOOP;
Run Code Online (Sandbox Code Playgroud)

当我向sprocs提供一个空数组时会出现问题.sproc只是返回一个错误,而不是不进入循环,说明FOR LOOP的上限是NULL.不应该是0吗?

我对FOR LOOP有什么不妥吗?

有没有其他方法在LOOP中使用相同的边界而不使用空数组时返回NULL?

注意:我知道我总是可以在LOOP之前使用条件,如下所示:

IF array_length(array,1) IS NOT NULL THEN
Run Code Online (Sandbox Code Playgroud)

但问题是:这个sproc应该在最短的时间内处理数千个电话.因此,我并不期待为处理增加不必要的开销.我只是在寻找是否有办法在循环中"循环"一个空数组.

arrays postgresql plpgsql

21
推荐指数
1
解决办法
1万
查看次数

preg_match在树枝上

首先,我知道逻辑应该在控制器中,而不是在视图中,我保持这种方式.

但在这种特殊情况下,我需要在三元运算中使用preg_match来设置div的css类.

例:

{% for list in lists %}
    <div class="{{ (preg_match(list.a, b))>0 ? something : else }}"...>...</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

如何在树枝中实现(preg_match(list.a,b))> 0条件?

提前致谢

php twig

2
推荐指数
2
解决办法
8668
查看次数

标签 统计

arrays ×1

php ×1

plpgsql ×1

postgresql ×1

twig ×1