#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューターphp メソッドで 2 次元配列を複数の 1 次元配列に変換します: 1. array_reduce() 関数を使用して変換します; 2. array_walk_recursive() 関数を使用して変換します; 3. array_map( ) 変換する関数。
PHP 2 -次元配列 (または任意の次元配列) を 1 次元配列に変換するメソッド
$user = array( '0' => array('id' => 100, 'username' => 'a1'), '1' => array('id' => 101, 'username' => 'a2'), '2' => array('id' => 102, 'username' => 'a3'), '3' => array('id' => 103, 'username' => 'a4'), '4' => array('id' => 104, 'username' => 'a5'), );
1 つは、指定された列を 1 次元配列に変換することです。これについては、別の記事「多次元配列から指定された列を抽出する PHP のメソッドの完全なリスト」にまとめられています。 ここでは、すべての値を 1 次元配列に変換する 2 番目のケースに焦点を当てますが、キーの値は同じであり、上書きされません。次元配列は次のようになります。
$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4', 104, 'a5');
1 array_reduce 関数のメソッド
array_reduce() 関数を使用する方が高速な方法です:$result = array_reduce($user, function ($result, $value) { return array_merge($result, array_values($value)); }, array())
array_merge 関数は、同じ文字列キー名を持つ配列を上書きしてマージするため、最初に
array_value を使用して値を取得し、それをマージする必要があります。
$user = array( 'a' => array(100, 'a1'), 'b' => array(101, 'a2'), 'c' => array(102, 'a3'), 'd' => array(103, 'a4'), 'e' => array(104, 'a5'), );
$result = array_reduce($user, 'array_merge', array())
2 array_walk_recursive function method
array_walk_recursive() 関数は非常に柔軟で、任意の次元の配列を 1 次元の配列に変換できます。$result = []; array_walk_recursive($user, function($value) use (&$result) { array_push($result, $value); });
$user4 = array( 'a' => array(100, 'a1'), 'b' => array(101, 'a2'), 'c' => array( 'd' => array(102, 'a3'), 'e' => array(103, 'a4'), ), );
$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4');
3 array_map 関数メソッド
array_map 関数と
array_reduce 関数の使用方法は、次のように似ています。
$result = []; array_map(function ($value) use (&$result) { $result = array_merge($result, array_values($value)); }, $user);
$result<span class="hljs-variable"></span>配列。
array_walkメソッドや
foreach<span class="hljs-keyword"></span>ループメソッドも使用できますが、原理は上記と同様です。
PHP ビデオ チュートリアル 」
以上がPHP で 2 次元配列を複数の 1 次元配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。