ホームページ  >  記事  >  バックエンド開発  >  PHP の 2 次元配列を 1 次元の数値に変換

PHP の 2 次元配列を 1 次元の数値に変換

WBOY
WBOYオリジナル
2023-05-11 09:45:50468ブラウズ

PHP は、Web 開発、特にバックエンド開発で広く使用されている人気のスクリプト言語です。 PHP 開発では、配列は非常に一般的なデータ型です。開発プロセスでは、2 次元配列を 1 次元配列に変換する必要がある場合があります。これは基本的な配列操作のスキルでもあります。この記事では、PHPを使用して2次元配列を1次元配列に変換する方法を説明します。

1. 2 次元配列とは何ですか?

PHP では、配列は要素の順序付けされたコレクションであり、各要素には要素にアクセスするために使用できる一意のキー (キー) があります。 2 次元配列は、配列内にネストされた 1 つ以上の配列を指します。これらの入れ子になった配列は、同じタイプの配列でも、異なるタイプの配列でも構いません。 PHP では、入れ子になった配列を使用して、行列やツリーなどの多次元データ構造を表すことができます。

次は 2 次元配列の例です:

$students = array(
    array("name" => "张三", "age" => 20, "score" => 80),
    array("name" => "李四", "age" => 21, "score" => 85),
    array("name" => "王五", "age" => 22, "score" => 90)
);

2. なぜ 2 次元配列を 1 次元配列に変換する必要があるのでしょうか?

開発プロセス中、2 次元配列を 1 次元配列に変換する必要がある場合があります。以下にいくつかの実際的な例を示します。

  1. データベース クエリ結果の変換

PHP を使用してデータベースにクエリを実行する場合、通常、クエリ結果は 2 つの形式で返されます。次元配列。クエリ結果に対して統計や並べ替え操作を実行する場合は、2 次元配列を 1 次元配列に変換する必要がある場合があります。たとえば、生徒の平均スコアをクエリする場合、ネストされた 2 次元配列を 1 次元配列に変換してから、平均スコアを計算する必要があります。

  1. JSON データの処理

JSON 形式のデータを使用する場合、使いやすくするために、ネストされた 2 次元配列を 1 次元配列に変換する必要がある場合があります。

  1. 配列操作の簡素化

単純な配列操作の中には、1 次元配列を使用する方が簡単で効率的で理解しやすいものがあります。たとえば、1 次元配列を使用して生徒のスコアを保存すると、並べ替え、検索、置換などの操作を簡単に実行できます。

3. 2 次元配列を 1 次元配列に変換するにはどうすればよいですか?

PHP では、2 次元配列を 1 次元配列に変換する方法がたくさんあります。以下にいくつかの実装方法を示します。

  1. foreach ループの実装を使用する

PHP の foreach ループ構造を使用して、2 次元配列を走査し、各要素を 1 つの配列に挿入できます。 -次元配列の真ん中。以下はサンプル コードです:

$students = array(
    array("name" => "张三", "age" => 20, "score" => 80),
    array("name" => "李四", "age" => 21, "score" => 85),
    array("name" => "王五", "age" => 22, "score" => 90)
);

$flat_students = array(); // 定义一个空的一维数组

foreach ($students as $items) { // 遍历二维数组
    foreach ($items as $key => $value) { // 遍历内层数组
        $flat_students[$key][] = $value; // 将元素插入到一维数组中
    }
}

print_r($flat_students); // 输出一维数组

出力結果は次のとおりです:

Array
(
    [name] => Array
        (
            [0] => 张三
            [1] => 李四
            [2] => 王五
        )

    [age] => Array
        (
            [0] => 20
            [1] => 21
            [2] => 22
        )

    [score] => Array
        (
            [0] => 80
            [1] => 85
            [2] => 90
        )

)
  1. array_column() 関数を使用して実装

PHP が提供するものarray_column() 関数を使用すると、2 次元配列内のキー名に対応する値を抽出し、1 次元配列を返すことができます。以下はサンプル コードです:

$students = array(
    array("name" => "张三", "age" => 20, "score" => 80),
    array("name" => "李四", "age" => 21, "score" => 85),
    array("name" => "王五", "age" => 22, "score" => 90)
);

$names = array_column($students, 'name');
$ages = array_column($students, 'age');
$scores = array_column($students, 'score');

print_r($names); // 输出一维数组
print_r($ages); // 输出一维数组
print_r($scores); // 输出一维数组

出力結果は次のとおりです:

Array
(
    [0] => 张三
    [1] => 李四
    [2] => 王五
)
Array
(
    [0] => 20
    [1] => 21
    [2] => 22
)
Array
(
    [0] => 80
    [1] => 85
    [2] => 90
)
  1. Array_reduce() 関数を使用して実装します

array_reduce PHP の () 関数は、配列要素を反復処理して単一の値に減らし、この値を返します。 2 次元配列を 1 次元配列に変換できます。以下にサンプルコードを示します。

$students = array(
    array("name" => "张三", "age" => 20, "score" => 80),
    array("name" => "李四", "age" => 21, "score" => 85),
    array("name" => "王五", "age" => 22, "score" => 90)
);

$keys = array('name', 'age', 'score');

$flat_students = array_reduce($students, function ($result, $item) use ($keys) {
    foreach ($keys as $key) {
        $result[$key][] = $item[$key];
    }
    return $result;
}, array());

print_r($flat_students); // 输出一维数组

出力結果は最初のメソッドと同じです。

4. 概要

この記事では、foreach ループ、array_column() 関数、array_reduce() 関数などの使用を含む、PHP で 2 次元配列を 1 次元配列に変換するいくつかの方法を紹介します。 . .実際のニーズに応じて、さまざまな方法を選択できます。これらのスキルを習得すると、配列データをより効率的に処理し、コーディング効率を向上させることができます。

以上がPHP の 2 次元配列を 1 次元の数値に変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。