Hướng dẫn php merge arrays with same keys - php hợp nhất các mảng có cùng khóa

$arr1 = array[
   "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
   "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
   "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
   "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"],
   "4" => array["fid" => 2, "tid" => 9, "name" => "Xigua"]
];

Nếu bạn muốn chuyển đổi mảng này như sau:

$arr2 = array[
   "0" => array[
          "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
          "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
          "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
          "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"]
    ],

    "1" => array[
          "0" =>array["fid" => 2, "tid" => 9, "name" => "Xigua"]
     ]
];

Vì vậy, câu trả lời của tôi sẽ như thế này:

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];

Hy vọng câu trả lời này sẽ giúp ai đó đôi khi.

[Php 4, Php 5, Php 7, Php 8]

mảng_merge - hợp nhất một hoặc nhiều mảngMerge one or more arrays

Sự mô tả

mảng_merge [mảng ...$arrays]: mảng[array ...$arrays]: array

Nếu các mảng đầu vào có cùng một khóa chuỗi, thì giá trị sau cho khóa đó sẽ ghi đè lên cái trước. Tuy nhiên, nếu các mảng chứa các khóa số, giá trị sau sẽ không ghi đè lên giá trị ban đầu, nhưng sẽ được thêm vào.

Các giá trị trong các mảng đầu vào có các khóa số sẽ được đánh số lại với các phím tăng bắt đầu từ 0 trong mảng kết quả.

Thông số

arrays

Danh sách biến các mảng để hợp nhất.

Trả về giá trị

Trả về mảng kết quả. Nếu được gọi mà không có bất kỳ đối số nào, hãy trả về một mảng trống.array.

Thay đổi

Phiên bảnSự mô tả
7.4.0 mảng_merge [mảng ...$arrays]: mảng

Nếu các mảng đầu vào có cùng một khóa chuỗi, thì giá trị sau cho khóa đó sẽ ghi đè lên cái trước. Tuy nhiên, nếu các mảng chứa các khóa số, giá trị sau sẽ không ghi đè lên giá trị ban đầu, nhưng sẽ được thêm vào.

Các giá trị trong các mảng đầu vào có các khóa số sẽ được đánh số lại với các phím tăng bắt đầu từ 0 trong mảng kết quả.array_merge[] example

Thông số

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]

arraysarray_merge[] example

Danh sách biến các mảng để hợp nhất.

Trả về giá trị

$arr2 = array[
   "0" => array[
          "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
          "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
          "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
          "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"]
    ],

    "1" => array[
          "0" =>array["fid" => 2, "tid" => 9, "name" => "Xigua"]
     ]
];
1

Trả về mảng kết quả. Nếu được gọi mà không có bất kỳ đối số nào, hãy trả về một mảng trống.

array[5] {
  [0]=>
  string[6] "zero_a"
  [2]=>
  string[5] "two_a"
  [3]=>
  string[7] "three_a"
  [1]=>
  string[5] "one_b"
  [4]=>
  string[6] "four_b"
}

Thay đổiarray_merge[] with non-array types

$arr2 = array[
   "0" => array[
          "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
          "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
          "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
          "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"]
    ],

    "1" => array[
          "0" =>array["fid" => 2, "tid" => 9, "name" => "Xigua"]
     ]
];
2

Thông số

    Array
    [
        [0] => foo
        [1] => bar
    ]

arrays

  • Danh sách biến các mảng để hợp nhất.
  • Trả về giá trị
  • Trả về mảng kết quả. Nếu được gọi mà không có bất kỳ đối số nào, hãy trả về một mảng trống.
  • Thay đổi

Phiên bản

Hàm này bây giờ có thể được gọi mà không có bất kỳ tham số nào. Trước đây, ít nhất một tham số đã được yêu cầu.

$arr2 = array[
   "0" => array[
          "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
          "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
          "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
          "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"]
    ],

    "1" => array[
          "0" =>array["fid" => 2, "tid" => 9, "name" => "Xigua"]
     ]
];
3

$arr2 = array[
   "0" => array[
          "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
          "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
          "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
          "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"]
    ],

    "1" => array[
          "0" =>array["fid" => 2, "tid" => 9, "name" => "Xigua"]
     ]
];
4

$arr2 = array[
   "0" => array[
          "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
          "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
          "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
          "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"]
    ],

    "1" => array[
          "0" =>array["fid" => 2, "tid" => 9, "name" => "Xigua"]
     ]
];
5

$arr2 = array[
   "0" => array[
          "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
          "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
          "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
          "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"]
    ],

    "1" => array[
          "0" =>array["fid" => 2, "tid" => 9, "name" => "Xigua"]
     ]
];
6

$arr2 = array[
   "0" => array[
          "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
          "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
          "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
          "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"]
    ],

    "1" => array[
          "0" =>array["fid" => 2, "tid" => 9, "name" => "Xigua"]
     ]
];
7

Ví dụ

Ví dụ #1 Array_merge [] Ví dụ

$arr2 = array[
   "0" => array[
          "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
          "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
          "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
          "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"]
    ],

    "1" => array[
          "0" =>array["fid" => 2, "tid" => 9, "name" => "Xigua"]
     ]
];
8

$arr2 = array[
   "0" => array[
          "0" => array["fid" => 1, "tid" => 1, "name" => "Melon"],
          "1" => array["fid" => 1, "tid" => 4, "name" => "Tansuozhe"],
          "2" => array["fid" => 1, "tid" => 6, "name" => "Chao"],
          "3" => array["fid" => 1, "tid" => 7, "name" => "Xi"]
    ],

    "1" => array[
          "0" =>array["fid" => 2, "tid" => 9, "name" => "Xigua"]
     ]
];
9

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];
0

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];
1

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];
2

Ví dụ trên sẽ xuất ra:

Ví dụ #2 array_merge [] Ví dụ

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];
3

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];
4

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];
5

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];
6

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];
7

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];
8

$outer_array = array[];
$unique_array = array[];
foreach[$arr1 as $key => $value]
{
    $inner_array = array[];

    $fid_value = $value['fid'];
    if[!in_array[$value['fid'], $unique_array]]
    {
            array_push[$unique_array, $fid_value];
            unset[$value['fid']];
            array_push[$inner_array, $value];
            $outer_array[$fid_value] = $inner_array;


    }else{
            unset[$value['fid']];
            array_push[$outer_array[$fid_value], $value];

    }
}
var_dump[array_values[$outer_array]];
9

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]
0

Đừng quên rằng các phím số sẽ được đánh số lại!

Nếu bạn muốn nối các phần tử mảng từ mảng thứ hai vào mảng thứ nhất trong khi không ghi đè các phần tử từ mảng đầu tiên và không chỉ định lại, hãy sử dụng toán tử Union Array Union ____10:

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]
1

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]
2

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]
0

Các phím từ mảng đầu tiên sẽ được bảo quản. Nếu một khóa mảng tồn tại ở cả hai mảng, thì phần tử từ mảng thứ nhất sẽ được sử dụng và phần tử của khóa khớp từ mảng thứ hai sẽ bị bỏ qua.

Ví dụ #3 mảng_merge [] với các loại không phải là

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]
4

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]
5

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]
6

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]
7

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]
8

Array
[
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
]
0

Làm thế nào tôi có thể hợp nhất hai mảng trong PHP mà không sao chép?

Bạn có thể sử dụng hàm php mảng_unique [] và hàm php array_merge [] với nhau để hợp nhất hai mảng thành một mảng mà không có giá trị trùng lặp trong PHP.use the PHP array_unique[] function and PHP array_merge[] function together to merge two arrays into one array without duplicate values in PHP.

Làm thế nào chúng ta có thể kết hợp các mảng trong PHP?

Hàm php mảng_merge []..
Hợp nhất hai mảng thành một mảng: $ a1 = mảng ["màu đỏ", "màu xanh lá cây"];$ a2 = mảng ["màu xanh", "vàng"];....
Hợp nhất hai mảng kết hợp thành một mảng: $ a1 = mảng ["a" => "red", "b" => "màu xanh lá cây"];$ a2 = mảng ["c" => "blue", "b" => "màu vàng"];....
Chỉ sử dụng một tham số mảng có các phím số nguyên: $ a = mảng [3 => "màu đỏ", 4 => "màu xanh lá cây"] ;.

+= Hoạt động trên các mảng trong PHP?

Toán tử + trong PHP khi áp dụng cho các mảng thực hiện công việc của Array Union.$ mảng += mảng $ mảng1;Tìm thấy hiệu quả sự kết hợp của $ ARR và $ ARR1 và gán kết quả cho $ mảng.. $arr += array $arr1; effectively finds the union of $arr and $arr1 and assigns the result to $arr .

Sự khác biệt giữa kết hợp mảng và hợp nhất mảng trong PHP là gì?

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 với nhau thành một mảng duy nhất.... PHP ..

Bài Viết Liên Quan

Chủ Đề