PHP에서 배열에 배열 추가

Olorunfemi Akinlua 2023년6월20일
  1. forforeach 루프를 사용하여 PHP에서 배열에 배열 추가
  2. array_merge() 함수를 사용하여 PHP에서 배열에 배열 추가
  3. array_push() 함수를 사용하여 PHP에서 배열에 배열 추가
PHP에서 배열에 배열 추가

배열에는 종종 더 빠른 반복 및 데이터 관리를 위해 동일한 데이터 유형의 일련의 인덱싱된 요소가 포함됩니다.

일반적으로 배열 요소에 액세스하려면 배열을 반복합니다. 예를 들어, PHP 애플리케이션에서 배열은 등록 양식의 데이터를 보유할 수 있고 다른 배열은 계정 세부 정보 섹션의 데이터를 보유할 수 있습니다. 하나의 시퀀스에서 두 배열을 모두 사용하려면 두 배열을 모두 추가해야 합니다. 이를 달성하려면 두 번째 배열을 첫 번째 배열에 추가해야 하며 다른 함수는 다르게 동작합니다.

이 자습서에서는 두 개의 배열을 함께 추가하여 PHP에서 하나의 배열을 형성하는 다양한 방법에 대해 설명합니다.

forforeach 루프를 사용하여 PHP에서 배열에 배열 추가

배열을 다른 배열에 추가하는 간단한 방법은 두 번째 배열을 선택하고 모든 요소를 반복하고 각 요소를 첫 번째 배열에 추가하는 것입니다. 그러나 이 특정 솔루션은 더 큰 어레이에 대해 다소 길고 비효율적입니다.

$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

array_merge() 함수를 사용하여 PHP에서 배열에 배열 추가

array_merge() 함수는 두 개 이상의 배열을 병합하고 한 배열의 요소를 이전 배열의 끝에 추가하는 식으로 마지막 배열까지 추가합니다. 이 함수는 색인, 연관 및 다차원 배열에서 작동합니다. 이전 방법과 달리 이 접근 방식은 새 배열을 만들고 첫 번째 배열에 추가하지 않습니다.

이 방법은 여러 어레이에서 사용할 수 있습니다. 더 자세하게는 이 접근 방식을 사용하여 키-값 쌍(연관 배열)을 서로 추가하여 하나의 단일 배열을 형성할 수 있습니다. 인덱스 배열도 마찬가지입니다.

$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

세 개의 어레이에서 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 버전 이상과 호환됩니다.

array_push() 함수를 사용하여 PHP에서 배열에 배열 추가

array_push() 함수는 배열을 스택(LIFO)처럼 배열의 끝으로 푸시합니다. 이 함수를 사용하여 연관 배열에 인덱스 배열을 추가할 수 있으며 연관 배열에 푸시된 인덱스 배열에 대한 숫자 인덱스가 자동으로 생성됩니다. 두 개의 인덱스 배열이 푸시되면 첫 번째 인덱스 배열은 숫자 인덱스 0을 보유하고 두 번째 인덱스 배열은 숫자 인덱스 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() 함수를 두 개 이상의 배열과 함께 사용하는 유일한 방법은 기본 수단을 통하는 것입니다.

$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