ホームページ > バックエンド開発 > PHPチュートリアル > PHP の 2 次元配列 (または任意の次元配列) を 1 次元配列に変換する方法のまとめ

PHP の 2 次元配列 (または任意の次元配列) を 1 次元配列に変換する方法のまとめ

angryTom
リリース: 2023-04-07 17:04:02
転載
2189 人が閲覧しました

PHP の 2 次元配列 (または任意の次元配列) を 1 次元配列に変換する方法のまとめ

次の 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 つあります。

One 指定された列を 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 を使用して値を取得する必要があります。

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_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 配列を宣言するだけです。

さらに、array_walk メソッドと foreach ループ メソッドも使用でき、原理は上記と同じです。

PHP 関連の知識の詳細については、PHP 中国語 Web サイト をご覧ください。

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

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