2016-09-27 3 views
-4

У меня есть два массива, как показано ниже, например .., как объединить два массива в один массив на основе ключа и значения пары

$arr1 = array("0" => "1"); 
$arr2 = array("2" => "3"); 

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

Ожидаемый результат ..

$arr3 = array("0" => "2"); 
$arr4 = array("1" => "3"); 
+3

И что вы будете делать, если у вас есть 3 значения? Каким должен быть ожидаемый результат: 'array (A => B, C => NULL)' или 'array (A => B, C)', ...? – Rizier123

+0

Я хочу объединить все ключи в одном массиве и все значения в другом массиве. –

+0

Я думаю, что ваш ожидаемый результат немного выключен. Взгляните на 'array_keys()' и 'array_values ​​()', а затем используйте предложенный 'array_combine()' – RST

ответ

-1

Может быть, вы можете использовать array_combine()

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

print_r($c); 
?> 
+0

Я хочу объединить все ключи в одном массиве и все значения в другом массиве. –

0

Следующая работа для примера, приведенного. Используйте array_combine с array_keys для $arr3 и reset для $arr4 -

//extract the keys and combine them 
$arr3 = array_combine(array_keys($arr1), array_keys($arr2)); 

//extract the first value and combine them 
$arr4 = array_combine(array(reset($arr1)), array(reset($arr2))); 
0

Вы можете сделать это так, что, используя array_keys и array_vals:

<? 
    $arr1 = array("0" => "1"); 
    $arr2 = array("2" => "3"); 
    $a1_keys = array_keys($arr1); 
    $a1_vals = array_values($arr1); 
    $a2_keys = array_keys($arr2); 
    $a2_vals = array_values($arr2); 
    $keys_merge = array(); 
    $vals_merge = array(); 
    for ($i = 0; $i < count($arr1); $i++) { 
     $keys_merge[$a1_keys[$i]] = $a2_keys[$i]; 
     $vals_merge[$a1_vals[$i]] = $a2_vals[$i]; 
    } 
    print_r($keys_merge); 
    print_r($vals_merge); 

Script выше, предполагает, что Вы правильно отформатированные массивы.

0
$arr1 = array("0","1"); 
$arr2 = array("2","3"); 

foreach($arr1 as $key => $value){ 
    $arr3[$value] = $arr2[$key]; 
} 

Это то, что вам нужно. Примечание: 1) ваше описание $ arr1 и $ arr2 неверно 2) Требуется больше логики, если длины массива не равны.

Смежные вопросы