ホームページ > バックエンド開発 > PHPの問題 > PHPで3次元配列をクエリする方法

PHPで3次元配列をクエリする方法

PHPz
リリース: 2023-04-25 10:07:53
オリジナル
695 人が閲覧しました

PHP 開発では、データの保存と処理に 3 次元配列を使用するのが非常に一般的です。配列要素の構造が複雑なため、3 次元配列をクエリする方法も少し複雑になります。ただし、いくつかの基本的なスキルを習得していれば、3 次元配列を簡単に走査したりクエリしたりすることができます。

この記事では、PHP を使用して 3 次元配列をクエリし、配列データをより簡単に処理できるようにする方法を紹介します。

3 次元配列とは何ですか?

PHP では、配列は 2 次元配列、3 次元配列などの多次元にすることができます。 3 次元配列は、複数の 2 次元配列で構成される配列とみなすことができます。ここで、各 2 次元配列は、複数の 1 次元配列で構成される配列です。次のコードを使用して 3 次元配列を定義できます。

$threeDimensionalArray = array(
    array(
        array(1, 2, 3),
        array(4, 5, 6),
        array(7, 8, 9),
    ),
    array(
        array(10, 11, 12),
        array(13, 14, 15),
        array(16, 17, 18),
    ),
);
ログイン後にコピー

上記のコードでは、$threeDimensionalArray という名前の 3 次元配列を定義します。配列は 2 つの 2 次元配列で構成され、各 2 次元配列は 3 つの 1 次元配列で構成されます。各 1 次元配列には 3 つの要素が含まれます。

3 次元配列を走査するにはどうすればよいですか?

3 次元配列を走査するには、for ループと foreach ループという 2 つの方法があります。以下では、これら 2 つの方法をそれぞれ紹介します。

for ループを使用して 3 次元配列を走査します:

for ($i = 0; $i < count($threeDimensionalArray); $i++) {
    for ($j = 0; $j < count($threeDimensionalArray[$i]); $j++) {
        for ($k = 0; $k < count($threeDimensionalArray[$i][$j]); $k++) {
            echo $threeDimensionalArray[$i][$j][$k];
        }
    }
}
ログイン後にコピー

上記のコードでは、ネストされた 3 つの for ループを使用して 3 次元配列 $threeDimensionalArray を走査します。

foreach ループを使用して 3 次元配列を走査します:

foreach ($threeDimensionalArray as $twoDimensionalArray) {
    foreach ($twoDimensionalArray as $oneDimensionalArray) {
        foreach ($oneDimensionalArray as $value) {
            echo $value;
        }
    }
}
ログイン後にコピー

上記のコードでは、3 次元配列 $threeDimensionalArray を走査するためにネストされた 3 つの foreach ループを使用しました。

3 次元配列をクエリするにはどうすればよいですか?

3 次元配列をクエリするいくつかの異なる方法を紹介しましょう。

インデックスを使用して要素に直接アクセスする:

3 次元配列内の目的の要素の正確な位置がわかっている場合は、次のようにインデックスを使用して要素に直接アクセスできます。

echo $threeDimensionalArray[1][2][1]; // 输出 17
ログイン後にコピー
上の例では、$threeDimensionalArray 配列の 2 番目の 2 次元配列の 3 番目の 1 次元配列の 2 番目の要素にアクセスします。

foreach ループを使用して要素を走査して決定する:

foreach ループを使用して 3 次元配列を走査し、if ステートメントを通じて要素が特定の条件を満たしているかどうかを確認できます。

foreach ($threeDimensionalArray as $twoDimensionalArray) {
    foreach ($twoDimensionalArray as $oneDimensionalArray) {
        foreach ($oneDimensionalArray as $value) {
            if ($value == 6) {
                echo "Found!";
                break 3; // 结束所有循环
            }
        }
    }
}
ログイン後にコピー
上記のコードでは、3 つの foreach ループを使用して 3 次元配列 $threeDimensionalArray を走査し、if ステートメントを使用して要素 6 を検索しました。要素 6 が見つかったら、break 3 ステートメントを使用してすべてのループを終了します。

array_filter() 関数を使用する:

特定の条件を満たす 3 次元配列内の要素を検索する場合は、PHP の組み込みの array_filter() 関数を使用できます。以下に例を示します。

function findElements($element) {
    return ($element % 2 == 0);
}

$results = array_filter($threeDimensionalArray, function ($twoDimensionalArray) {
    return array_filter($twoDimensionalArray, function ($oneDimensionalArray) {
        return array_filter($oneDimensionalArray, 'findElements');
    });
});

print_r($results);
ログイン後にコピー
上記のコードでは、要素が偶数かどうかを返す findElements という関数を定義します。次に、array_filter() 関数を使用して 3 次元配列 $threeDimensionalArray を走査し、条件を満たす要素を返します。

概要

この記事では、PHP で 3 次元配列を走査してクエリを実行する方法を学びました。 3 次元配列の反復とクエリは面倒な場合がありますが、いくつかのテクニックを習得すると、配列内のデータを簡単に操作し、そこからより貴重な情報を取得できるようになります。

以上がPHPで3次元配列をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート