Array Util (Min, Max, Range, Zip, Uniq)
core/namespace/array-util-func/code/src/array-util.php
:
<?php
namespace ArrayUtil;
function min($array): float
{
$minValue = $array[0];
for ($flag = 1; $flag < sizeof($array); $flag++) {
if ($minValue > $array[$flag])
$minValue = $array[$flag];
}
return $minValue;
}
function max($array): float
{
$maxValue = $array[0];
for ($flag = 1; $flag < sizeof($array); $flag++) {
if ($maxValue < $array[$flag])
$maxValue = $array[$flag];
}
return $maxValue;
}
function range($length, $last = null, $step = null)
{
$begin = is_null($last) ? 0 : $length;
$end = $last ?? $length;
$step = $step ?? 1;
$result = [];
for ($number = $begin; $number < $end; $number += $step) {
$result[] = $number;
}
return $result;
}
function zip(...$arrays)
{
$result = [];
for ($index = 0; $index < sizeof($arrays); $index++) {
$values = [];
for ($array = 0; $array < sizeof($arrays); $array++)
$values[] = $arrays[$array][$index];
$result[] = $values;
}
return $result;
}
function uniq($array)
{
$result = [];
foreach ($array as $value) {
if (!in_array($value, $result))
$result[] = $value;
}
return $result;
}
core/namespace/array-util-func/code/print/array-util.print.php
:
<?php
require __DIR__ . '/../src/array-util.php';
// Array Util
// finding lowest value in [1, 4, 2, 6, 10, 3]
var_dump(min([1, 4, 2, 6, 10, 3]));
var_dump(1.0);
// finding lowest value in [1, 4, -1, 6, 10, 3]
var_dump(min([1, 4, -1, 6, 10, 3]));
var_dump(-1.0);
// finding greatest value in [1, 4, 2, 6, 10, 3]
var_dump(max([1, 4, 2, 6, 10, 3]));
var_dump(10.0);
// generating range of numbers from 0 to 10
var_dump(range(10));
var_dump([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
// generating range of numbers from 1 to 11
var_dump(range(1, 11));
var_dump([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
// generating range of numbers from 0 to 10 with steps
var_dump(range(0, 30, 5));
var_dump([0, 5, 10, 15, 20, 25]);
// generating zip of [\'moe\', \'larry\'] and [30, 40]
var_dump(zip(['moe', 'larry'], [30, 40]));
var_dump([['moe', 30], ['larry', 40]]);
// generating zip of [\'moe\', \'larry\', \'curly\'], [30, 40, 50] and [true, false, false]
var_dump(zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]));
var_dump([['moe', 30, true], ['larry', 40, false], ['curly', 50, false]]);
// removing duplicate values in [1, 2, 1, 4, 1, 3]
var_dump(uniq([1, 2, 1, 4, 1, 3]));
var_dump([1, 2, 4, 3]);
// removing duplicate values in [1, 2, 1, 3, 3]
var_dump(uniq([1, 2, 1, 3, 3]));
var_dump([1, 2, 3]);