zip()

引数として渡された複数の配列から同じ位置の要素をタプルにまとめて配列として返します。

構文

zip(ARRAY1, ARRAY2[, ...])

パラメータ

ARRAY1, ARRAY2[, ...]
まとめる配列または値。カンマ(,)で区切って 2 つ以上指定します。

説明

zip() 関数は、引数として渡された複数の配列から同じ位置の要素をタプル(内部配列)にまとめ、そのタプルを要素とする配列を返します。配列の長さが異なる場合、短い配列が尽きると null で埋めます。スカラー値は最初のタプルでのみ使用され、以降は null で埋めます。空の配列のみが渡された場合は null を返します。

エラーコード

該当なし

使用例

  1. 2 つの配列を同じ位置ごとにまとめます。

    json "{}"
    | eval keys = array("a", "b", "c"), vals = array(1, 2, 3)
    | eval result = zip(keys, vals)
    | # result: [["a",1],["b",2],["c",3]]
    
  2. 長さの異なる配列を使用します。短い配列が尽きると null で埋めます。

    json "{}"
    | eval arr1 = array("x", "y"), arr2 = array(10, 20, 30)
    | eval result = zip(arr1, arr2)
    | # result: [["x",10],["y",null]]
    
  3. 配列とスカラー値を一緒に使用します。スカラーは最初のタプルでのみ使用されます。

    json "{}"
    | eval arr = array("a", "b", "c")
    | eval result = zip(arr, "fixed")
    | # result: [["a","fixed"],["b",null],["c",null]]
    
  4. すべての引数が空の配列の場合は null を返します。

    json "{}" | eval result = zip(array(), array())
    | # result: null
    

変更履歴

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