<?php
$a1 = [121, 144, 19, 161, 19, 144, 19, 11];
$a2 = [11*11, 121*121, 144*144, 19*19, 161*161, 19*19, 144*144, 19*19];
assert(comp($a1, $a2) === TRUE);
$a1 = [121, 144, 19, 161, 19, 144, 19, 11];
$a2 = [11*21, 121*121, 144*144, 19*19, 161*161, 19*19, 144*144, 19*19];
$a1 = [121, 144, 19, 161, 19, 144, 19, 11];
$a2 = [11*11, 121*121, 144*144, 190*190, 161*161, 19*19, 144*144, 19*19];
$a1 = [];
$a2 = [];
$a1 = [];
$a2 = null;
$a1 = [121, 144, 19, 161, 19, 144, 19, 11, 1008];
$a2 = [11*11, 121*121, 144*144, 190*190, 161*161, 19*19, 144*144, 19*19];
$a1 = [10000000, 100000000];
$a2 = [10000000 * 10000000, 100000000 * 100000000];
$a1 = [10000001, 100000000];
$a2 = [10000000 * 10000000, 100000000 * 100000000];
$a1 = [2, 2, 3];
$a2 = [4, 9, 9];
function comp(array $array1 = NULL, array $array2 = NULL) : bool {
$array1 = $array1 ?? [];
$array2 = $array2 ?? [];
$valid_comparison = $array1 !== NULL && $array2 !== NULL ? [[$array1, $array2]] : [];
$valid_comparison = $array1 && $array2 ? [[$array1, $array2]] : [];
$equal_squares = array_reduce($valid_comparison, 'compare_against_squares', false);
return $equal_squares;
}
function compare_against_squares(bool $carry, array $arrays) : bool {
list($array1, $array2) = $arrays;
$array1_squared = array_map('square', $array1);
return compare_sorted_arrays($array1_squared, $array2);
}
function compare_sorted_arrays(array $array1, array $array2) : bool {
sort($array1);
sort($array2);
return $array1 == $array2;
}
function square(int $value) : float {
return $value * $value;
}
- Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
preferences:
119 ms | 403 KiB | 169 Q