2008-10-02 79 views
21

Tôi có hai mảng có cùng kích thước. Tôi muốn hợp nhất cả hai để các giá trị của một là các chỉ mục chính của mảng mới, và các giá trị của mảng mới là các giá trị của mảng kia.Hợp nhất hai mảng dưới dạng cặp giá trị khóa trong PHP

Ngay bây giờ tôi chỉ đang lặp qua các mảng và tạo mảng mới theo cách thủ công, nhưng tôi có cảm giác có một cách thanh lịch hơn để thực hiện việc này. Tôi không thấy bất kỳ chức năng mảng nào cho mục đích này, nhưng có lẽ tôi đã bỏ sót điều gì đó? Có một cách đơn giản để điều này dọc theo những dòng này?

$mapped_array = mapkeys($array_with_keys, $array_with_values); 

Trả lời

50

Xem array_combine() trên PHP.net.

+3

Chà, tôi đoán đó chỉ là một trong những buổi sáng đó - làm sao tôi nhớ điều này? Hoàn hảo, cảm ơn bạn! –

10

(từ các tài liệu để đọc dễ dàng)

array_combine - Tạo một mảng bằng cách sử dụng một mảng cho các phím và một cho giá trị của nó

Mô tả

array array_combine (array $keys , array $values)

Tạo một mảng bằng cách sử dụng các giá trị từ mảng khóa làm khóa và giá trị từ mảng giá trị làm giá trị tương ứng.

thông số

phím - Mảng các phím được sử dụng. Các giá trị bất hợp pháp cho khóa sẽ được chuyển thành chuỗi.

giá trị - Mảng các giá trị được sử dụng

Ví dụ

<?php 
$a = array('green', 'red', 'yellow'); 
$b = array('avocado', 'apple', 'banana'); 
$c = array_combine($a, $b); 

print_r($c); 
?> 

Ví dụ trên sẽ đầu ra:

Array 
(
    [green] => avocado 
    [red] => apple 
    [yellow] => banana 
) 
4

này nên làm các trick

function array_merge_keys($ray1, $ray2) { 
    $keys = array_merge(array_keys($ray1), array_keys($ray2)); 
    $vals = array_merge($ray1, $ray2); 
    return array_combine($keys, $vals); 
} 
Các vấn đề liên quan