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




Chủ Đề