PHPで配列に配列を追加する

Olorunfemi Akinlua 2023年6月20日
  1. for および foreach ループを使用して、PHP で配列を配列に追加する
  2. PHP で array_merge() 関数を使用して配列を配列に追加する
  3. PHP で array_push() 関数を使用して配列を配列に追加する
PHPで配列に配列を追加する

配列には、多くの場合、反復処理とデータ管理を高速化するために、同じデータ型の一連のインデックス付き要素が含まれています。

通常、配列要素にアクセスするには、配列をループします。 たとえば、PHP アプリケーションでは、配列に登録フォームのデータを保持し、別の配列にアカウント詳細セクションのデータを保持できます。 両方の配列を 1つのシーケンスで使用するには、両方の配列を追加する必要があります。 これを実現するには、2 番目の配列を最初の配列に追加する必要があり、関数によって動作が異なります。

このチュートリアルでは、PHP で 2つの配列を追加して 1つの配列を形成するさまざまな方法について説明します。

for および foreach ループを使用して、PHP で配列を配列に追加する

配列を別の配列に追加する簡単な方法は、2 番目の配列を選択し、すべての要素をループして、各要素を最初の配列に追加することです。 ただし、この特定のソリューションはかなり長く、大規模な配列では非効率的です。

$container = ["hair extension", "scissors"];
$shopping_lists = ["hair cream", "hair fryer", "makeup set"];
for($index = 0; $index < count($shopping_lists ); $index++){
    array_push($container, $shopping_lists[$index]);
}
print_r($container)

出力:

Array
(
    [0]    hair extension
    [1]    scissors
    [2]    hair cream
    [3]    hair fryer
    [4]    makeup set
)
   true

また、連想配列にも同じアプローチを適用できます。 ただし、同じ非効率性と複雑さが伴います。

$customer = array( 
    "name" => "Garner", 
    "email" => "g.abded@gmail.com", 
    "age" => 34, 
    "gender" => "female",
    "account_type" => "starter"
); 

$account = array(
    "current_course" => "Ruby Crash Course",
    "payment_channel" => "Stripe",
    "browser" => "Edge"
);

foreach($account as $key => $value) {
    $customer[$key] = $value;
}

print_r($customer)

出力:

Array
(
    [name]    Garner
    [email]    g.abded@gmail.com
    [age]    34
    [gender]    female
    [account_type]    starter
    [current_course]    Ruby Crash Course
    [payment_channel]    Stripe
    [browser]    Edge
)
   true

PHP で array_merge() 関数を使用して配列を配列に追加する

array_merge() 関数は、2つ以上の配列をマージし、1つの配列の要素を前の配列の最後に追加し、最後の配列まで同様に追加します。 この関数 インデックス、連想、および多次元配列で機能します。 前の方法とは異なり、このアプローチは新しい配列を作成し、最初の配列に追加しません。

このメソッドは、複数の配列で機能します。 より詳細には、このアプローチを使用して、キーと値のペア (連想配列) を互いに追加して、1つの配列を形成できます。 同じことがインデックス配列にも当てはまります。

$details = [
    "name" => "Clement",
    "email" => "clement@gmail.com",
    "gender" => "male"
];

$accounts = [
    "card" => "mastercard",
    "processor" => "stripe",
    "pro" => True
];

$account_details = array_merge($details, $accounts);

print_r($account_details);

出力:

Array
(
    [name]    Clement
    [email]    clement@gmail.com
    [gender]    male
    [card]    mastercard
    [processor]    stripe
    [pro]    1
)
   true

以下は、3つの配列に対して array_merge() 関数を使用する方法です。

$details = [
    "name" => "Clement",
    "email" => "clement@gmail.com",
    "gender" => "male"
];
$accounts = [
    "card" => "mastercard",
    "processor" => "stripe",
    "pro" => True
];
$functions = [
    "movies" => "inferno"
];
$account_details = array_merge($details, $accounts, $functions);
print_r($account_details);

出力:

Array
(
    [name]    Clement
    [email]    clement@gmail.com
    [gender]    male
    [card]    mastercard
    [processor]    stripe
    [pro]    1
    [movies]    inferno
)
   true

このメソッドは、PHP 7.0 以降のすべてのバージョンと互換性があります。

PHP で array_push() 関数を使用して配列を配列に追加する

array_push() 関数は、配列をスタック (LIFO) のように配列の最後にプッシュします。 この関数 を使用してインデックス配列を連想配列に追加すると、連想配列にプッシュされたインデックス配列の数値インデックスが自動的に作成されます。 2つのインデックス配列がプッシュされた場合、最初のインデックス配列は数値インデックス 0 を保持し、2 番目のインデックス配列は数値インデックス 1 を保持します。プッシュされた N 配列 の場合、数値インデックスは N-1 になります。

さらに、インデックス配列をインデックス配列に、連想配列を連想配列にプッシュできます。

$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Geology', 'Machine Learning'];
$BD_Tools = array_push($basic_data, $tools);

print_r($basic_data);

出力:

Array
(
    [Location]    Mumbai
    [Tier]    Three
    [0]    Array
        (
            [0]    Geology
            [1]    Machine Learning
        )
)
   true

さらに、array_push() 関数内で ... 演算子を使用して、プッシュされた配列内のすべての要素が、すべてのインデックスではなく、独自の数値インデックスを持つようにします。

$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Geology', 'Machine Learning'];
$BD_Tools = array_push($basic_data, ...$tools);

print_r($basic_data);

出力:

Array
(
    [Location]    Mumbai
    [Tier]    Three
    [0]    Geology
    [1]    Machine Learning
)
   true

連想配列のプッシュ操作では、... 演算子は使用できません。エラーがスローされるためです。

TypeError: array_push() は未知の名前付きパラメーター null を受け入れません

したがって、array_push() 関数を 2つ以上の配列で使用する唯一の方法は、デフォルトの方法を使用することです。

$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Course' => 'Geology', 'Approach' => 'Machine Learning'];
$BD_Tools = array_push($basic_data, $tools);

print_r($basic_data);

出力:

Array
(
    [Location]    Mumbai
    [Tier]    Three
    [0]    Array
        (
            [Course]    Geology
            [Approach]    Machine Learning
        )

)
   true
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn