開発中に、2 次元配列を 1 次元配列に変換する必要が生じることがありますが、この記事では、PHP でこの操作を実行する方法を紹介します。
PHP の 2 次元配列は複数の 1 次元配列で構成される配列ですが、1 次元配列は 1 つの値で構成される配列です。したがって、2 次元配列を 1 次元配列に変換するには、1 次元配列内のすべての値を抽出して、新しい 1 次元配列に代入する必要があります。
1. ループを使用して 2 次元配列を走査する
PHP では、ループを使用して 2 次元配列を走査し、新しい配列に値を追加できます。一次元配列。具体的な実装は次のとおりです。
$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion')); $singleArr = array(); foreach ($multiArr as $arr) { foreach ($arr as $value) { $singleArr[] = $value; } } print_r($singleArr);
上記のコードでは、2 つの 1 次元配列を含む 2 次元配列 $multiArr
が最初に定義されます。次に、空の 1 次元配列 $singleArr
を作成し、2 つのネストされた foreach
を使用して、$multiArr
内の各 1 次元配列をループし、それらの間の値を取得します。そして値を $singleArr
に追加します。最後に、print_r()
関数を使用して $singleArr
を出力します。出力結果は次のようになります。
Array ( [0] => apple [1] => banana [2] => pear [3] => cat [4] => dog [5] => lion )
2. call_user_func_array()# を使用します。 ## function
call_user_func_array() 関数を使用して、多次元配列を 1 次元配列に変換することもできます。具体的なコードは次のとおりです。
$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion')); $singleArr = call_user_func_array('array_merge', $multiArr); print_r($singleArr);上記のコードでは、2 つの 1 次元配列を含む 2 次元配列
$multiArr が最初に定義されます。次に、
call_user_func_array() 関数を使用します。最初のパラメータは
array_merge 関数名で、マージ操作が実行されることを意味します。2 番目のパラメータは
$multiArr 配列。マージする複数の配列を意味します。結合された新しい配列は、1 次元配列
$singleArr です。最後に、
print_r() 関数を使用して
$singleArr を出力します。出力結果は次のようになります。
Array ( [0] => apple [1] => banana [2] => pear [3] => cat [4] => dog [5] => lion )3.
array_reduce()# を使用します。 ## function
上記の 2 つの方法に加えて、
関数を使用して 2 次元配列を 1 次元配列に変換することもできます。具体的な実装は次のとおりです。 <pre class="brush:php;toolbar:false">$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion'));
$singleArr = array_reduce($multiArr, 'array_merge', array());
print_r($singleArr);</pre>
上記のコードでは、2 つの 1 次元配列を含む 2 次元配列
が最初に定義されます。次に、array_reduce()
関数を使用します。最初のパラメータは $multiArr
配列で、マージする配列を示します。2 番目のパラメータは array_merge
関数名です. はマージ操作が実行されることを示し、3 番目のパラメーターは空の配列で、最初の 1 次元配列が空の配列であることを示します。最後に、結合された新しい配列を 1 次元配列 $singleArr
に格納し、print_r()
関数を使用して出力結果を印刷します。出力結果は最初と同じです。 2 つの方法: <pre class="brush:php;toolbar:false">Array
(
[0] => apple
[1] => banana
[2] => pear
[3] => cat
[4] => dog
[5] => lion
)</pre>
4. まとめ
この記事では、2 次元配列を 1 次元配列に変換する 3 つの方法を紹介します。実際の開発では、状況に応じて適切な方法を選択できます。あなたのニーズに合わせて。単純な 2 次元配列の場合は、ループ トラバーサルの最初の方法の方が理解しやすく実装しやすい場合があります。より複雑な多次元配列の場合は、
call_user_func_array() 関数と array_reduce()## を使用します。 # 関数の方が便利かもしれません。
以上がPHPで2次元配列を1次元配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。