コーディングチュートリアル
リストをJavaScript、Python、PHPの配列に変換する
プレーンテキストのリストを、適切な引用符、エスケープ処理、コピー可能な例を用いて、JavaScript配列、Pythonリスト、PHP配列に変換する方法を学びます。
スプレッドシートからコピーしたり、データベースからエクスポートしたり、テキストファイルに手入力したりしたプレーンテキストのアイテムリストがある場合、それをコードで使用するために配列リテラルに変換する必要がよくあります。手動で括弧、カンマ、引用符を追加するのは面倒でエラーが発生しやすく、特にリストが長い場合や特殊文字が含まれている場合はなおさらです。
異なるプログラミング言語は、配列に対して類似しているが異なる構文を持っています。JavaScriptは配列に角括弧を使用し、Pythonはリストに角括弧を使用し、PHPはarray()と角括弧の両方をサポートしています。3つの言語すべてで文字列には引用符が必要ですが、数値は引用符なしで記述します。これらのニュアンスを理解することで、変換後の配列が構文的に正しいことが保証されます。
このガイドでは、JavaScript、Python、PHPの変換プロセスを比較します。引用符のルール、エスケープ、混合データ型の処理について説明します。また、CompareTwoListsの無料ブラウザベースツールを紹介します。これらはペースト1回で変換を自動化し、データをプライベートに保ちます。
出発点:プレーンテキストリスト
変換する前に、生の入力を特定します。最も単純なケースは、各アイテムが個別の行にある文字列のリストです。この入力は、CSVファイルの列、スプレッドシートからコピーしたリスト、SQLのSELECT出力など、さまざまなソースから取得できます。例として、フルーツ名のリストを使用します。
- 1行に1アイテム
- 余分な書式や句読点なし
- 空行は通常無視される
apple
banana
cherry
dateJavaScriptの配列構文と変換
JavaScriptでは、配列は角括弧で囲みます。要素はカンマで区切ります。文字列はシングルクォートまたはダブルクォートで囲む必要があります。フルーツリストの変換により、クリーンな配列リテラルが生成されます。
const、let、またはvarを使用して配列を変数に代入できます。再代入されない値にはconstを選択します。最大の互換性のために末尾のカンマを避けますが、現代のJavaScriptでは許可されています。
- 各アイテムを引用符で囲む
- カンマで区切る
- すべてを角括弧で囲む
const fruits = ['apple', 'banana', 'cherry', 'date'];Pythonのリスト構文と変換
Pythonのリストも角括弧とカンマを使用します。Pythonの慣例では文字列にシングルクォートを使用しますが、ダブルクォートも許容されます。結果のリストは、多数の組み込みメソッドを持つファーストクラスのコレクション型です。
JavaScriptと同様に、リストを変数に代入します。Pythonのリスト内包表記と組み込み関数により、リストの操作は非常に柔軟です。変換は簡単で、Pythonでは末尾のカンマが許可されています。
- 角括弧とカンマを使用
- 文字列にはシングルクォートが慣例
- 末尾のカンマは有効
fruits = ['apple', 'banana', 'cherry', 'date']PHPの配列構文と変換
PHPには配列を宣言する2つの方法があります。古いarray()関数と、PHP 5.4で導入された短縮構文[]です。短縮構文は現在広く使用されており、新しいコードには推奨されます。PHPでは変数名の前に$が必要です。
PHPではシングルクォートとダブルクォートの両方がサポートされています。ダブルクォートは変数挿入とエスケープシーケンスを許可しますが、単純な文字列配列の場合はシングルクォートの方がわずかに効率的で、意図しない解析を避けられます。
- $variableName = [...] または $variableName = array(...) を使用
- 末尾のカンマは使用しない(PHPでは許可されていません)
- 単純な文字列にはシングルクォートを推奨
$fruits = ['apple', 'banana', 'cherry', 'date'];文字列と数値の扱い
よくある懸念は、アイテムを文字列として扱うか数値として扱うかです。ターゲット配列では、数値は引用符で囲まないでください。数値リテラルである必要があります。ソースリストに郵便番号、製品ID、電話番号などの数値のように見える値が含まれている場合は、コンテキストに基づいて判断する必要があります。先頭のゼロを保持する必要がある場合は、文字列として扱います。
データ型が曖昧な場合は、すべてを文字列として引用符で囲み、その後で数値に対して手動で調整する方が安全です。たとえば、名前と年齢が混在するリストは注意深く分離する必要があります。
- 数値:引用符なし
- 文字列:常に引用符
- 曖昧な値:デフォルトで文字列
const mixed = ['Alice', 30, 'Bob', 28];mixed = ['Alice', 30, 'Bob', 28]$mixed = ['Alice', 30, 'Bob', 28];特殊文字と引用符のエスケープ
アイテムに使用している引用符スタイルと一致する引用符文字が含まれている場合は、エスケープする必要があります。たとえば、名前「O'Brien」にはシングルクォートが含まれています。文字列をシングルクォートで囲む場合は、O\'Brienのようにエスケープする必要があります。代わりにダブルクォートを使用すると、エスケープを回避できます。「"O'Brien"」は変更なしで機能します。
同様に、文字列にダブルクォートが含まれている場合は、シングルクォートで囲むことができます。バックスラッシュや改行文字もエスケープが必要です。読みやすさのために、最も少ないエスケープで済む引用符スタイルを選択してください。
- アイテム内のすべての引用符文字を特定する
- アイテムにシングルクォートが含まれている場合は、エスケープするか(\')、ダブルクォートを使用する
- アイテムにダブルクォートが含まれている場合は、エスケープするか(\")、シングルクォートを使用する
- 含まれているバックスラッシュは二重にしてエスケープする(\\)
- アイテム内の改行を削除するか、\nに変換する
- シングルクォートとダブルクォートのコンテキストでエスケープが異なる
- エスケープを最小限にするために引用符スタイルを切り替える
- ツールを使用して適切なエスケープを自動化する
const names = ["O'Brien", 'Say "hello"', 'back\\slash'];names = ["O'Brien", 'Say "hello"', 'back\\slash']$names = ["O'Brien", 'Say "hello"', 'back\\slash'];CompareTwoListsを使用した即時変換
CompareTwoListsは、JavaScript配列、Pythonリスト、PHP配列用の個別のコンバーターを提供します。各コンバーターはすべての入力行を文字列として扱い、選択したシングルクォートまたはダブルクォートのエスケープルールを適用し、コンパクトまたは複数行の結果を出力できます。
JavaScriptツールは、const宣言、let宣言、または配列リテラルを出力できます。PythonツールとPHPツールは、オプションの変数名を受け入れます。数値型やブール型を推論せず、末尾のカンマも追加しないため、宛先コードで必要な場合は明示的に型を確認して編集してください。
- ターゲット言語のコンバーターを開く。
- 1行に1つの文字列値を貼り付ける。
- シングルクォートかダブルクォート、レイアウト、変数または宣言オプションを選択する。
- 結果をコピーし、ターゲット言語のフォーマッターまたはテストスイートで実行する。
- ページ内ローカル処理
- 言語固有の文字列エスケープ
- すべての入力行が文字列として出力される
- 自動型推論や末尾カンマオプションなし
まとめ
配列構文はJavaScript、Python、PHPで似ていますが、引用符、エスケープ、変数宣言、データ型については依然として慎重な選択が必要です。貼り付けた行を文字列として扱うことは、IDや手動入力値に対する安全なデフォルトです。
ブラウザコンバーターは、コピー可能な文字列コレクションをローカルで作成します。推論された意味を自分で確認し、アプリケーションにコミットする前に、結果をターゲット言語でフォーマットまたはテストしてください。