ホームページ >バックエンド開発 >PHPの問題 >1次元配列を2次元配列に変換するphp

1次元配列を2次元配列に変換するphp

WBOY
WBOYオリジナル
2023-05-05 22:08:072381ブラウズ

PHP 開発では、配列を 2 次元配列と 1 次元配列に変換する必要がよくありますが、この記事では、1 次元配列を 2 次元配列に変換する方法について説明します。

1 次元配列と 2 次元配列の基本概念

PHP では、配列は複数の値を格納できる特別な変数です。 1 次元配列は最も単純な配列タイプであり、各要素には値が 1 つだけ含まれます。 2 次元配列は、複数の 1 次元配列を含む順序付けされたデータのコレクションです。

1 次元配列を 2 次元配列に変換する方法

PHP では、1 次元配列を 2 次元配列に変換する方法が多数あります。以下に、一般的に使用されるいくつかの方法を紹介します。

方法 1: for ループを使用する

次は、1 次元配列を 2 次元配列に変換する例です。

<?php
$arr = ['a', 'b', 'c', 'd', 'e', 'f'];
$rows = 2;
$cols = 3;

$index = 0;
for ($i = 0; $i < $rows; $i++) {
    for ($j = 0; $j < $cols; $j++) {
        if (isset($arr[$index])) {
            $result[$i][$j] = $arr[$index];
            $index++;
        } else {
            break;
        }
    }
}
print_r($result);
?>

コード内の $ arr は変換する必要があるもので、次元配列 $rows と $cols はそれぞれ 2 次元配列の行数と列数を表します。ループでは、配列の添え字を判断して、1 次元配列の要素を 2 次元配列に代入します。最終出力は、変換された 2 次元配列です。

方法 2: array_chunk 関数を使用する

PHP 組み込み関数 array_chunk は、1 次元配列を複数の配列ブロックに分割し、これらのブロックで構成される新しい配列を返すことができます。この関数を使用して、1 次元配列を 2 次元配列に変換できます。サンプル コードは次のとおりです。

<?php
$arr = ['a', 'b', 'c', 'd', 'e', 'f'];
$cols = 3;

$result = array_chunk($arr, $cols);
print_r($result);
?>

コード内で、$arr は変換する必要がある 1 次元配列であり、$cols は各 2 次元配列の長さです。 array_chunk関数を使用すると、1次元配列を2次元配列に変換して出力できます。

方法 3: foreach ループを使用する

1 次元配列を 2 次元配列に変換するもう 1 つの方法は、PHP の foreach ループを使用することです。例は次のとおりです。

<?php
$arr = ['a', 'b', 'c', 'd', 'e', 'f'];
$rows = 2;
$cols = 3;

$index = 0;
foreach (range(1, $rows) as $i) {
    foreach (range(1, $cols) as $j) {
        if (isset($arr[$index])) {
            $result[$i][$j] = $arr[$index];
            $index++;
        } else {
            break;
        }
    }
}
print_r($result);
?>

コードでは、range 関数を使用して行と列の数を表す配列を作成します。次に、foreach ループ内の添え字を判断して、1 次元配列の値を 2 次元配列に代入します。最終出力は、変換された 2 次元配列です。

方法 4: array_chunk 関数と array_pad 関数を使用する

array_chunk 関数と array_pad 関数を使用して 1 次元配列を 2 次元配列に変換する別の方法は、次のとおりです。

<?php
$arr = ['a', 'b', 'c', 'd', 'e', 'f'];
$cols = 3;

$result = array_chunk($arr, $cols);
$last = count($result[count($result) - 1]);
if ($last < $cols) {
    $result[count($result) - 1] = array_pad($result[count($result) - 1], $cols, "");
}
print_r($result);
?>

コードでは、まず array_chunk 関数を使用して 1 次元配列を複数の配列ブロックに分割し、次に array_pad 関数を使用して最後の配列ブロックを null 値で埋めます。これにより、1 次元配列から 2 次元配列への変換が実現されます。

概要

この記事では、1 次元配列を 2 次元配列に変換する 4 つの方法を紹介します。実際の開発では、特定のニーズに応じて適切な方法を選択して使用できます。どの方法でも、ループや組み込み関数などを通じて配列変換を実現できます。

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

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