Присваивание первого елемента массива к последнему элементу второго массива

Суть задачи состоит в том что есть два массива: $array1 = ["1", "2", "3"] ; $array2 = ["3", "2", "1"]. Нужно записать значения в третий массив по указаному алгоритму: 1-ый элемент 2-го массива к 3-ему элементу 2-го массива, второй к второму, третий к первому. Должно получится так: $result = ["1-1" , "2-2", "3-3"]


Ответы (1 шт):

Автор решения: Deonis
$array1 = ["1", "2", "3"] ; 
$array2 = ["3", "2", "1"];
$result = array_map(function($a, $b){
    return $a . '-' . $b;
}, $array1, array_reverse($array2));

UPD Пара вариантов с циклом. Подразумевается, что длина массивов одинакова

Вариант 1:

$array2 = array_reverse($array2);
$result = [];
foreach($array1 as $i => $v) {
    $result[] = $v . '-' . $array2[$i];
}

Вариант 2:

$result = [];
$total = count($array1);
for($i = 0, $k = $total - 1; $i < $total; $i++, $k--) {
    $result[] = $array1[$i] . '-' . $array2[$k];    
}

Последний вариант можно изменить, используя одну переменную для счётчика

$result = [];
$total = count($array1) - 1;
for($i = 0; $i <= $total; $i++) {
    $result[] = $array1[$i] . '-' . $array2[$total - $i];   
}
→ Ссылка