foreach()

1つ以上の配列に対して要素ごとに指定された式を適用し、結果の配列を返します。

構文

foreach(OP_EXPR, ARRAY1[, ARRAY2, ...])

パラメーター

OP_EXPR
各配列要素に適用する式。最初の配列の現在の要素は _1、2番目の配列の現在の要素は _2、N番目の配列の現在の要素は _N で参照します。
ARRAY1[, ARRAY2, ...]
要素ごとの演算を行う配列。カンマ(,)で区切って2個以上指定できます。

説明

foreach() 関数は、配列の各位置に対応する要素を取り出して OP_EXPR に指定された式を適用した後、すべての結果を1つの配列にまとめて返します。

複数の配列を指定した場合、最も長い配列の長さを基準に処理します。長さが短い配列には不足する位置に null を埋めた後、演算を実行します。配列の代わりにスカラー値を引数として渡すと、その値を最も長い配列と同じ長さに複製して使用します。

返り値は配列です。入力配列が空であるか、すべての引数が null の場合は空の配列を返します。

エラーコード

該当なし

使用例

  1. 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. 長さが異なる2つの配列に演算を適用(短い配列の不足する位置には null を埋める)

    json "{}"
    | eval arr1 = array(10, 20, 30), arr2 = array(1, 2)
    | eval result = foreach(_1 + _2, arr1, arr2)
    | # result: [11,22,null]
    
  3. スカラー値を2番目の引数として使用

    json "{}"
    | eval arr = array(1, 2, 3)
    | eval result = foreach(_1 * _2, arr, 10)
    | # result: [10, 20, 30]
    
  4. null 入力

    json "{}" | eval result = foreach(_1 + 1, null)
    | # result: []
    

互換性

foreach() 関数は Sonar 4.0以前のバージョンから提供されています。