PHPで1次元配列を変換する方法

王林
リリース: 2023-05-19 18:40:38
オリジナル
447 人が閲覧しました

2次元配列に変換しますか?

PHP プログラミングでは、データの処理と表示をより便利にするために、1 次元配列を 2 次元配列に変換する必要がある場合があります。たとえば、統計と分析を容易にするために、特定のルールに従って 1 次元配列内のデータをグループ化し、それを 2 次元配列に配置します。この記事では、PHP で 1 次元配列を 2 次元配列に変換する方法と、データをグループ化およびソートする方法を紹介します。

  1. 変換には array_chunk() 関数を使用します

PHP には、配列を複数の小さな配列に分割できる array_chunk() という関数が用意されています。配列には次のものが含まれます。指定された要素数。このうち、パラメータ $size は各小さな配列に含まれる要素の数を表し、パラメータ $preserve_keys は元の配列のキー名を保持するかどうかを指定します。この関数を使用して、1 次元配列を 2 次元配列に変換します。以下はサンプル コードです:

<?php
$original_array = array('a', 'b', 'c', 'd', 'e', 'f');
$chunked_array = array_chunk($original_array, 2);  // 将原数组按每2个元素分为一个小数组
print_r($chunked_array);
?>
ログイン後にコピー

上記のコードの出力は次のとおりです:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
            [1] => f
        )

)
ログイン後にコピー

array_chunk() 関数を通じて、元の配列を 3 つの小さな配列に分割します。配列には 2 つの要素が含まれます。これにより、1 次元配列が 2 次元配列に変換されます。

  1. 変換に for ループを使用する

array_chunk() 関数を使用することに加えて、for ループを使用してこの変換プロセスを完了することもできます。以下はサンプル コードです。

<?php
$original_array = array('a', 'b', 'c', 'd', 'e', 'f');
$chunked_array = array();
$chunk_size = 2;  // 每个小数组包含元素数量
$chunk_count = ceil(count($original_array) / $chunk_size);  // 小数组数量
for ($i = 0; $i < $chunk_count; $i++) {
    $chunked_array[$i] = array_slice($original_array, $i * $chunk_size, $chunk_size);
}
print_r($chunked_array);
?>
ログイン後にコピー

上記のコードの出力は、上記の array_chunk() 関数を使用した結果と同じです。この例では、最初に小さな配列の数を数え、次に for ループと array_slice() 関数を使用して元の配列を分割し、$chunked_array 配列に格納します。

  1. データのグループ化と並べ替え

1 次元配列を 2 次元配列に変換した後、必要に応じてデータをグループ化および並べ替えることができます。以下はコード例です:

<?php
$original_array = array(
    array('name' => '张三', 'age' => 18, 'gender' => '男'),
    array('name' => '李四', 'age' => 21, 'gender' => '女'),
    array('name' => '王五', 'age' => 22, 'gender' => '男'),
    array('name' => '赵六', 'age' => 19, 'gender' => '女')
);
$chunked_array = array_chunk($original_array, 2);  // 将原数组按每2个元素分为一个小数组
$sorted_array = array();
foreach ($chunked_array as $chunk) {
    $sorted_chunk = array();
    foreach ($chunk as $item) {
        $sorted_chunk[(int)$item['age']][] = $item;
    }
    ksort($sorted_chunk);
    $sorted_array[] = $sorted_chunk;
}
print_r($sorted_array);
?>
ログイン後にコピー

上記のコードは、4 つの要素を含む 1 次元配列 $original_array を定義します。各要素は、名前、年齢、性別の 3 つのキーと値のペアを含む連想配列です。元の配列を 2 つの要素ごとに小さな配列に分割し、その小さな配列内の要素を年齢に従って並べ替えると、最終的に次のような構造の 2 次元配列 $sorted_array が得られます。 ## Pass 上記のコードでは、同じグループ内の要素を年齢別にソートし、最終結果を $sorted_array 配列に入れます。

概要

この記事では、array_chunk() 関数と変換のための for ループの使用を含む、PHP で 1 次元配列を 2 次元配列に変換する方法を紹介し、さらに紹介します。データをグループ化して並べ替える方法。実際のプログラミングプロセスでは、必要に応じてデータ処理と表示のためのさまざまな方法を選択できます。

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

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