Как получить максимальный элемент в каждом индексе при сравнении двух массивов? - PullRequest
0 голосов
/ 08 марта 2020

У меня есть два индексированных массива одинаковой длины:

$first_array = [1,3,4,5,6]; 
$second_array = [5,2,1,7,9];

Мне нужно создать новый массив, состоящий из более высокого значения между двумя элементами в каждом индексе.

Выходные данные должно быть:

$output_array[5, 3, 4, 7, 9];

Ответы [ 2 ]

4 голосов
/ 08 марта 2020

Super easy one-liner:

Передайте оба массива на array_map(), так как он синхронно проходит по обоим наборам данных, вызовите max() для двух элементов.

Код: ( Демо )

$first_array = [1, 3, 4, 5, 6];
$second_array = [5, 2, 1, 7, 9];

var_export(array_map('max', $first_array, $second_array));

Вывод:

array (
  0 => 5,
  1 => 3,
  2 => 4,
  3 => 7,
  4 => 9,
)
1 голос
/ 08 марта 2020

Попробуйте так. демо

<?php

$first_array = array(1,3,4,5,6);
$second_array = array(5,2,1,7,9);

$return = array();
foreach($first_array as $key => $value){
    if($first_array[$key] > $second_array[$key]){
        $return[] = $first_array[$key];
    }else{
        $return[] = $second_array[$key];
    }
}

print_r($return);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...