Объединить два массива (ключ и содержимое) в PHP - PullRequest
4 голосов
/ 23 марта 2009

У меня есть массив, подобный следующему

Array ([0] => "txt1" [1] => "txt2" [2] => "txt3")

У меня есть другой массив, но с другим содержанием: Массив ([0] => вкл. [2] => вкл.)

Цель состоит в том, чтобы получить окончательный массив с ключами второго и содержимым первого, это все равно, что объединить их.

Таким образом, конечный результат будет таким: при объединении их один в один.

Ответы [ 3 ]

11 голосов
/ 23 марта 2009

Самый простой способ сделать это с помощью array_intersect_key ( См. PHP Docs ). Он получает значения из первого переданного массива, соответствующие ключам, присутствующим во всех других переданных массивах.

Итак, ваш пример будет выглядеть так:

$a = array(0 => "txt1", 1 => "txt2", 2 => "txt3");
$b = array(0 => 1, 2 => 1);
$c = array_intersect_key($a, $b);
print_r($c);

печать:

Array
(
    [0] => txt1
    [2] => txt3
)
2 голосов
/ 23 марта 2009

почему бы вам не использовать простое решение?

foreach($arr2 as $k=>$v) {
    $a[$k] = $arr1[$k];
}
2 голосов
/ 23 марта 2009

array_combine - Создает массив, используя один массив для ключей и другой для его значений

...