UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#027 foreachで配列の二重ループ処理

記入日:2023-02-04 編集日:2023-02-04

SQL見るだけクエリ。SQ Lで取得した配列を二重ループ処理する場合に関して考えてみます。

二重ループ処理とは、

2つのループを組み合わせたループ処理のことを指します。 具体的には、外側のループでは最初のループを実行し、内側のループでは最初のループで取り出した要素に対して、 2番目のループを実行し、取り出した2つの要素を照合して、条件に一致した場合になんらかの処理を行う、というものです。

二重ループ処理のメリット

二重ループ処理を使用することで、配列内の要素を効率的に比較し、条件に一致したときの処理を行うことができます。 例えば、2つの配列の内容を比較し、一致した値を処理するといったことが可能になります。 また、複数の配列を合わせて比較することも可能なため、より複雑な処理を行うことが可能になります。

以下具体的な利用例です。

$array1 = [
    [
        'id' => 1,
        'name' => 'name1'
    ],
    [
        'id' => 2,
        'name' => 'name2'
    ],
    [
        'id' => 3,
        'name' => 'name3'
    ],
    [
        'id' => 4,
        'name' => 'name4'
    ]
];

$array2 = [
    [
        'id' => 1,
        'value' => 'value1'
    ],
    [
        'id' => 2,
        'value' => 'value2'
    ],
    [
        'id' => 3,
        'value' => 'value3'
    ]
];

foreach ($array1 as $a1) {
    foreach ($array2 as $a2) {
        if ($a1['id'] === $a2['id']) {
            // idが一致した場合に何かを実行する処理
            echo $a1['name'] . " : " . $a2['value'] . PHP_EOL;
        }
    }
}


//結果
name1 : value1 
name2 : value2 
name3 : value3 

$array1と$array2は2つの配列です。$array1の配列の要素数は4つで、$array2の配列の要素数は3つです。

それぞれの要素には、idとname、valueというキーの要素が入っています。

このコードでは、$array1を取り出し、そのなかで$array2の要素を取り出し、取り出した2つの配列のidが一致しているかをif文を用いてチェックし、 一致していた場合に何かの処理を行うという内容のコードになります。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。