2008-10-02 4 views
21

Mam dwie tablice o tym samym rozmiarze. Chciałbym scalić dwa, więc wartości jednego są kluczowymi indeksami nowej tablicy, a wartości nowej tablicy są wartościami drugiej.Scal dwie tablice jako pary wartości kluczy w PHP

Właśnie przechodzę przez tablice i ręcznie tworzę nową tablicę, ale mam wrażenie, że istnieje o wiele bardziej elegancki sposób na zrobienie tego. Nie widzę żadnych funkcji tablicowych w tym celu, ale może coś przeoczyłem? Czy istnieje prosty sposób na to wzdłuż tych linii?

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

Odpowiedz

50

Zobacz array_combine() na stronie PHP.net.

+3

Wow, myślę, że to tylko jedno z tych poranków - jak to przegapiłem? Perfekcyjnie, dziękuję! –

10

(z Dokumenty na łatwy odczyt)

array_combine - tworzy tablicę używając jednej tablicy do kluczy, a drugi do jej wartości

Opis

array array_combine (array $keys , array $values)

Tworzy array, używając wartości z tablicy kluczy jako kluczy i wartości z tablicy wartości jako odpowiednich wartości.

Parametry

klucze - układ przycisków do użycia. Nielegalne wartości dla klucza zostaną przekonwertowane na ciąg znaków.

wartości - tablicę wartości do wykorzystania

Przykład

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

print_r($c); 
?> 

Powyższy przykład Wydajność:

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

to powinno wystarczyć

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); 
}