Присваивание первого елемента массива к последнему элементу второго массива
Суть задачи состоит в том что есть два массива: $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];
}