Concat mảng PHP

Trong PHP có thể thực hiện mảng + mảng. Dấu "cộng" là một cách viết tắt của việc hợp nhất các mảng, nhưng có sự khác biệt về cách chúng được hợp nhất so với cách sử dụng array_merge

Hãy tưởng tượng hai mảng này

$first = [
    'a',
    'b',
];

$second = [
    'c',
];

Hợp nhất chúng bằng cách sử dụng + sẽ dẫn đến kết quả sau

$first + $second;

// ['a', 'b']

Trong khi sử dụng array_merge, sẽ dẫn đến điều này

array_merge($first, $second);

// ['a', 'b', 'c']

Đây là nơi quảng cáo sẽ đến. Tuy nhiên, thay vào đó, tôi muốn hướng bạn tới trang Nhà tài trợ GitHub của tôi. Nếu bạn là độc giả thường xuyên và nội dung của tôi đang giúp ích cho bạn, bạn có thể xem xét tài trợ một lần hoặc hàng tháng. Nếu bạn là một công ty đang tìm kiếm các vị trí đặt quảng cáo chuyên dụng trên blog này hoặc bản tin của tôi, bạn có thể gửi email cho tôi theo địa chỉ brendt@stitcher. io

Điều đang xảy ra ở đây là array_merge sẽ ghi đè các khóa hiện có, trong khi + sẽ không. Nói cách khác. khi một khóa tồn tại trong mảng đầu tiên, + sẽ không hợp nhất một mục có cùng khóa từ mảng khác vào mảng đầu tiên

Trong ví dụ của chúng tôi, cả hai mảng đều có khóa số, như vậy

$first = [
    0 => 'a',
    1 => 'b',
];

$second = [
    0 => 'c',
];

Điều này giải thích tại sao

$first + $second;

// ['a', 'b']
2 không thêm 'c' làm thành phần. đã có một mục có chỉ số
$first + $second;

// ['a', 'b']
3 trong bản gốc

Điều tương tự cũng áp dụng cho các phím văn bản

$first = [
    'a' => 'a',
    'b' => 'b',
];

$second = [
    'a' => 'a - override',
];

$first + $second;

// ['a' => 'a', 'b' => 'b']

Và cuối cùng, + cũng hoạt động với các mảng lồng nhau

$first = [
    'level 1' => [
        'level 2' => 'original'
    ],
];

$second = [
    'level 1' => [
        'level 2' => 'override'
    ],
];

Sử dụng + sẽ giữ giá trị

$first + $second;

// ['a', 'b']
6, trong khi array_merge sẽ
$first + $second;

// ['a', 'b']
8 nó

Một điều nữa cần đề cập là + sẽ áp dụng hành vi tương tự khi hợp nhất các mảng nhiều chiều

Nhận thấy một tpyo? . Nếu bạn muốn cập nhật những gì đang diễn ra trên blog này, bạn có thể theo dõi tôi trên Twitter hoặc đăng ký nhận bản tin của tôi. Đăng ký email

Array_merge() là một hàm dựng sẵn trong PHP và được sử dụng để hợp nhất hai hoặc nhiều mảng thành một mảng duy nhất. Hàm này được sử dụng để hợp nhất các phần tử hoặc giá trị của hai hoặc nhiều mảng lại với nhau thành một mảng duy nhất. Việc hợp nhất xảy ra theo cách mà các giá trị của một mảng được thêm vào cuối mảng trước đó. Hàm lấy danh sách các mảng được phân tách bằng dấu phẩy làm tham số cần được hợp nhất và trả về một mảng mới với các giá trị đã hợp nhất của các mảng được truyền trong tham số

cú pháp

array array_merge($array1, $array2, ......, $arrayn)

Thông số. Hàm array_merge() lấy một danh sách các mảng được phân tách bằng dấu phẩy làm tham số cần được hợp nhất như trong cú pháp. Có n mảng (($array1, $array2, ……, $arrayn) cách nhau bởi dấu (‘,’) trong cú pháp. Chúng ta có thể chuyển bất kỳ số lượng mảng nào trong tham số

Giá trị trả về. Nó trả về một mảng mới trong đó các phần tử của tất cả các mảng được truyền trong tham số được hợp nhất sao cho các giá trị của một mảng được thêm vào cuối mảng trước đó

Các chương trình dưới đây minh họa hoạt động của hàm array_merge() trong PHP

  • Hợp nhất hai mảng đơn giản. Khi hai mảng nữa được chuyển đến hàm array_merge() thì các giá trị của một mảng được thêm vào cuối mảng trước đó. Nếu hai phần tử có cùng khóa chuỗi thì giá trị sau sẽ bị ghi đè. Các phím số nguyên sẽ được đánh số lại bắt đầu từ số không. Để hợp nhất hai mảng, hàm array_merge() có thể được thực hiện theo cách sau




     

    $my_array1 =array(

    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    0
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    1
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    2
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    3

    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    4 =array(___
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    8
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    9
    Array
    (
        [0] => Geeks
        [1] => for
        [2] => Geeks     
    )
    0
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    9
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    0
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    1
    Array
    (
        [0] => Geeks
        [1] => for
        [2] => Geeks     
    )
    4
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    9

    Array
    (
        [0] => Geeks
        [1] => for
        [2] => Geeks     
    )
    6
    Array
    (
        [0] => Geeks
        [1] => for
        [2] => Geeks     
    )
    7
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    1
    Array
    (
        [0] => Geeks
        [1] => for
        [2] => Geeks     
    )
    9_______28_______0

    Array
    (
        [0] => zero_a
        [1] => two_a
        [2] => three_a
        [3] => one_b
        [4] => three_b
        [5] => four_b
    )
    
    1 =
    Array
    (
        [0] => zero_a
        [1] => two_a
        [2] => three_a
        [3] => one_b
        [4] => three_b
        [5] => four_b
    )
    
    3($my_array1
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    9
    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    
    4
    Array
    (
        [0] => zero_a
        [1] => two_a
        [2] => three_a
        [3] => one_b
        [4] => three_b
        [5] => four_b
    )
    
    8

     

    0_______28_______1

    Array
    (
        [0] => zero_a
        [1] => two_a
        [2] => three_a
        [3] => one_b
        [4] => three_b
        [5] => four_b
    )
    
    8

     

    4

    đầu ra

    Array
    (
        [size] => medium
        [0] => 2
        [1] => 3
        [2] => a
        [3] => b
        [shape] => circle
        [4] => 4
    )
    

    Ghi chú. Nếu các mảng đầu vào chứa các khóa chuỗi giống nhau, thì giá trị sau của khóa đó sẽ ghi đè lên giá trị trước đó

    Làm cách nào để nối một mảng trong PHP?

    $nameArray1 = array('John','David'); . set both the above arrays in array_merge() to concatenate them.

    += có hoạt động trên các mảng trong PHP không?

    Toán tử + trong PHP khi được áp dụng cho mảng sẽ thực hiện công việc của mảng UNION . mảng $arr += mảng $arr1; .

    Làm cách nào để kết hợp ba mảng trong PHP?

    Làm cách nào để kết hợp ba mảng trở lên trong php? .
    mảng array_merge( mảng $array1[, mảng $. ]]
    - Nếu các mảng có khóa chuỗi giống nhau, giá trị cuối cùng của khóa đó sẽ ghi đè lên giá trị trước đó
    - Nếu mảng chứa các phím số thì giá trị sau sẽ không ghi đè lên giá trị ban đầu mà sẽ được thêm vào
    Vật mẫu

    Làm cách nào để kết hợp hai mảng với các giá trị duy nhất trong PHP?

    Bạn có thể sử dụng hàm PHP array_unique() và hàm PHP array_merge() để hợp nhất hai mảng thành một mảng mà không có giá trị trùng lặp trong .