#php の二次元配列を一次元配列に変換する方法
1. array_reduce 関数の方法2. array_walk_recursive 関数メソッド 3. array_map 関数メソッド #次の 2 次元配列があるとします:$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 次元配列に変換したいとします。状況は 2 つあります: 1 つは、指定された列を 1 次元配列に変換する場合で、これについては別の記事で要約されています: PHP で多次元配列から指定された列を抽出するためのメソッドの完全なリスト。 ここでは、すべての値を 1 次元配列に変換する 2 番目のケースに焦点を当てますが、キーの値は同じで上書きされません。次のようになります: $result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4', 104, 'a5');
array_reduce関数メソッド
$result = array_reduce($user, function ($result, $value) { return array_merge($result, array_values($value)); },array())array_merge 関数は同じ文字列キーをマージするためです。 name 配列は上書きされてマージされるため、マージする前に array_value を使用して値を取り出す必要があります。 2 番目の次元が次のような数値キー名の場合:
$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_recursiveFunction メソッド
$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 function methodUse a
rray_map 関数と
array_reduce 関数のメソッドは、次のように似ています。
$result = []; array_map(function ($value) use (&$result) { $result = array_merge($result, array_values($value)); }, $user);必要なのは、空の $result 配列を宣言することだけです。 さらに、array_walk メソッドと foreach ループ メソッドも使用でき、原理は上記と同じです。 推奨チュートリアル: 「
PHP チュートリアル 」
以上がPHPの二次元配列を一次元配列に変換する関数は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。