foreach()
1つ以上の配列に対して要素ごとに指定された式を適用し、結果の配列を返します。
構文
foreach(OP_EXPR, ARRAY1[, ARRAY2, ...])
パラメーター
OP_EXPR- 各配列要素に適用する式。最初の配列の現在の要素は
_1、2番目の配列の現在の要素は_2、N番目の配列の現在の要素は_Nで参照します。 ARRAY1[, ARRAY2, ...]- 要素ごとの演算を行う配列。カンマ(
,)で区切って2個以上指定できます。
説明
foreach() 関数は、配列の各位置に対応する要素を取り出して OP_EXPR に指定された式を適用した後、すべての結果を1つの配列にまとめて返します。
複数の配列を指定した場合、最も長い配列の長さを基準に処理します。長さが短い配列には不足する位置に null を埋めた後、演算を実行します。配列の代わりにスカラー値を引数として渡すと、その値を最も長い配列と同じ長さに複製して使用します。
返り値は配列です。入力配列が空であるか、すべての引数が null の場合は空の配列を返します。
エラーコード
該当なし
使用例
-
2つの配列の同じ位置にある要素を掛け算
json "{}" | eval arr1 = array(-1, -2, -3, -4, -5), arr2 = array(1, 2, 3, 4, 5) | eval result = foreach(_1 * _2, arr1, arr2) | # result: [-1, -4, -9, -16, -25] -
長さが異なる2つの配列に演算を適用(短い配列の不足する位置には
nullを埋める)json "{}" | eval arr1 = array(10, 20, 30), arr2 = array(1, 2) | eval result = foreach(_1 + _2, arr1, arr2) | # result: [11,22,null] -
スカラー値を2番目の引数として使用
json "{}" | eval arr = array(1, 2, 3) | eval result = foreach(_1 * _2, arr, 10) | # result: [10, 20, 30] -
null入力json "{}" | eval result = foreach(_1 + 1, null) | # result: []
互換性
foreach() 関数は Sonar 4.0以前のバージョンから提供されています。