2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Googleのスプレッドシートでphpの連想配列を作る自作関数

Last updated at Posted at 2018-01-24

phpのテスト用データ作るときによく使うので備忘録として

1行目をキー、2行目以降を値とした以下のようなテーブルがあったとする

A B C
1 id label value
2 1 'abc' 'ABC'
3 2 'def' 'DEF'

下記スクリプトを用意し、=PHP_ARRAY(A1:C1, A2:C2)のように記述するとarray('id' => 1, 'label' => 'abc', 'value' => 'ABC'),のような連想配列ができる
※ヘッダは""を省略した文字列として扱い、その他はそのままとする

script
/**
 * phpの連想配列作成
 * @param {array} header ヘッダ文字列
 * @param {array} values 値
 */
function PHP_ARRAY(header, list) {
  var result = 'array(';

  if(header[0].length == list[0].length) {
    for (var index = 0; index < header[0].length; index++) {
      if(list[0][index] != '') {
        result += "'" + header[0][index] + "' => " + list[0][index] + ",";
      }
    }
    result += ')';
  } else {
    throw new Error('header, list length not match');
  }

  return result;
}

範囲を引数に渡した場合、関数側では以下のような情報を受け取る
つまり2行目の1列目のセル内容が欲しい場合はargs[1][0]のようにすれば取得できる

array
[
    [1行目1列目 セル内容],
    [1行目2列目 セル内容]
],
[
    [2行目1列目 セル内容],
    [2行目2列目 セル内容]
],
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?