diff --git a/arrays_1_multi_dim_max.php b/arrays_1_multi_dim_max.php index de8c1a5..171b7d7 100644 --- a/arrays_1_multi_dim_max.php +++ b/arrays_1_multi_dim_max.php @@ -1,23 +1,37 @@ array(4,6, - 7 => array(-10,19,256,59,65) - ,8,9,), - 3 => array(54,78,95), - 6 => array(-7,89,176,55),); -$vMax = array_key_first($aDim); +$aDim = [ + 87, + 356, + 2 => [ + 4, + 6, + 7 => [-10, 19, 256, 59, 65,], + 8, + 9, + ], + 3 => [54, 78, 95,], + 6 => [-7, 89, 176, 55,], +]; -function findMax ($arr,&$vMax){ - foreach ($arr as $item){ - if (is_array($item)){ - $vMax = findMax($item,$vMax); +/** + * @param array $arr + * @param int $vMax + * @return int + */ +function findMax(array $arr, int &$vMax): int +{ + foreach ($arr as $item) { + if (is_array($item)) { + $vMax = findMax($item, $vMax); continue; } - if ($item > $vMax){ + if ($item > $vMax) { $vMax = $item; } } return $vMax; } -var_dump(findMax($aDim,$vMax)); +$vMax = array_first($aDim); +var_dump(findMax($aDim, $vMax)); diff --git a/arrays_2_one_dim_filter_non-numeric.php b/arrays_2_one_dim_filter_non-numeric.php index 1342489..d272660 100644 --- a/arrays_2_one_dim_filter_non-numeric.php +++ b/arrays_2_one_dim_filter_non-numeric.php @@ -1,22 +1,42 @@ array(4, 6, 3 => array(-10, 19=>array(3,6,90,6),256, "first", 65), 8, 9),5 => array(54, "second", 95),7 => array(-7, "last", 176, 55),); +$aDim = [ + 45, + 67, + 2 => [ + 4, + 6, + 3 => [ + -10, + 19 => [3, 6, 90, 6], + 256, + "first", + 65, + ], + 8, + 9, + ], + 5 => [54, "second", 95,], + 7 => [-7, "last", 176, 55,], +]; -$linearDim = []; - -function get_one_dim_array ($arr, $outDim) +/** + * @param array $arr + * @param array $outDim + * @return array + */ +function getOneDimArray(array $arr, array $outDim = []): array { foreach ($arr as $item) { - if (is_array($item)) { - $outDim = get_one_dim_array($item,$outDim); + $outDim = getOneDimArray($item, $outDim); continue; } - elseif (is_numeric($item)){ + if (is_numeric($item)) { $outDim[] = $item; } - } return $outDim; } -print_r(get_one_dim_array($aDim,$linearDim)); \ No newline at end of file + +print_r(getOneDimArray($aDim)); \ No newline at end of file diff --git a/arrays_3_dim_dissect_median.php b/arrays_3_dim_dissect_median.php index 43bf97f..9fe07ac 100644 --- a/arrays_3_dim_dissect_median.php +++ b/arrays_3_dim_dissect_median.php @@ -1,48 +1,65 @@ array(4, 6, 3 => array(-10, 19 => array(3, 27, 90, 6), 256, "first", 65), 8), 5 => array(54, "second", 95), 7 => array(-7, "last", 176, 55),); +$aDim = [ + 45, + 67, + 2 => [ + 4, + 6, + 3 => [ + -10, + 19 => [3, 6, 90, 6], + 256, + "first", + 65, + ], + 8, + 9, + ], + 5 => [54, "second", 95,], + 7 => [-7, "last", 176, 55,], +]; - - -function get_one_dim_array($arr, $outDim) +/** + * @param array $arr + * @param array $outDim + * @return array + */ +function getOneDimArray(array $arr, array $outDim = []): array { foreach ($arr as $item) { - if (is_array($item)) { - $outDim = get_one_dim_array($item, $outDim); + $outDim = getOneDimArray($item, $outDim); continue; - } elseif (is_numeric($item)) { + } + if (is_numeric($item)) { $outDim[] = $item; } - } return $outDim; } -$linearDim = []; - -$linearDim = get_one_dim_array($aDim, $linearDim); -sort($linearDim,SORT_NUMERIC); -$numEls =count($linearDim); +$linearDim = getOneDimArray($aDim); +sort($linearDim, SORT_NUMERIC); +$numEls = count($linearDim); print_r($linearDim); -// Четное число элементов массива, медиана равна полусумме двух средних соседних значений -if (!($numEls%2)){ - $median = ($linearDim[$numEls/2]+$linearDim[$numEls/2-1])/2; +if (!($numEls % 2)) { + // Четное число элементов массива, медиана равна полусумме двух средних соседних значений + $median = ($linearDim[$numEls / 2] + $linearDim[$numEls / 2 - 1]) / 2; echo "Odd quantity"; -} -// Нечетное число элементов массива, медиана равна значению среднего элемента массива -else{ - $median = $linearDim[$numEls/2+1]; +} else { + // Нечетное число элементов массива, медиана равна значению среднего элемента массива + $median = $linearDim[$numEls / 2 + 1]; } print_r($median); -$lessTwo_times = array_search($median/2,$linearDim); -$moreTwo_times = array_search($median*2,$linearDim); +$lessTwoTimes = array_search($median / 2, $linearDim); +$moreTwoTimes = array_search($median * 2, $linearDim); -var_dump($lessTwo_times); -var_dump($moreTwo_times); +var_dump($lessTwoTimes); +var_dump($moreTwoTimes); -$linearDim = array_splice($linearDim,$lessTwo_times+1); +$linearDim = array_splice($linearDim, $lessTwoTimes + 1); print_r($linearDim); diff --git a/strings_1_sort_by_ABC.php b/strings_1_sort_by_ABC.php index b032457..fdfa3ef 100644 --- a/strings_1_sort_by_ABC.php +++ b/strings_1_sort_by_ABC.php @@ -1,11 +1,10 @@ = 3; $i -=3) { +for ($i = $aStart; $i >= 3; $i -= 3) { $sumThree += $i; }