Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 26 additions & 12 deletions arrays_1_multi_dim_max.php
Original file line number Diff line number Diff line change
@@ -1,23 +1,37 @@
<?php
$aDim = array(87,356,2 => 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));
38 changes: 29 additions & 9 deletions arrays_2_one_dim_filter_non-numeric.php
Original file line number Diff line number Diff line change
@@ -1,22 +1,42 @@
<?php

$aDim = array(45,67,2 =>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));

print_r(getOneDimArray($aDim));
67 changes: 42 additions & 25 deletions arrays_3_dim_dissect_median.php
Original file line number Diff line number Diff line change
@@ -1,48 +1,65 @@
<?php

$aDim = array(45, 67, 2 => 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);
10 changes: 4 additions & 6 deletions strings_1_sort_by_ABC.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
<?php

// Первый вариант

$unOrd = array("yard","Festival", "lorem", "ipsum", "mountain", "serpent");
$unOrd = ["yard", "Festival", "lorem", "ipsum", "mountain", "serpent"];
$sorted = [];

foreach ($unOrd as $word){
foreach ($unOrd as $word) {
$key = ord($word[0]);
$sorted[$key] = $word;
}
Expand All @@ -14,6 +13,5 @@
print_r($sorted);

//Второй вариант

//sort($unOrd)
//print_r($unOrd);
sort($unOrd);
print_r($unOrd);
6 changes: 3 additions & 3 deletions strings_2_del_repeated.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php

$gibberish = "AAbBbbCcCcAAa";

$letter = 0;

while ($letter < strlen($gibberish)){
while ($letter < strlen($gibberish)) {
$subst = $gibberish[$letter];
$gibberish = preg_replace("/$subst+/","$subst",$gibberish);
$gibberish = preg_replace("/" . quotemeta($subst) . "+/", $subst, $gibberish);
// $gibberish = preg_replace("/$subst+/i","$subst",$gibberish); //Регистронезависимый вариант
$letter++;
}
Expand Down
13 changes: 4 additions & 9 deletions sum_less_three_optimized.php
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
<?php
//echo 'Введите число: '

$aNum = 9;
$aStart = 0;

if (!($aNum%3)){
$aStart = $aNum - 3;
}
else{
$aStart = $aNum-($aNum%3);
$aStart = $aNum - 3;
if ($aNum % 3) {
$aStart = $aNum - ($aNum % 3);
}

$sumThree = 0;

for($i = $aStart;$i >= 3; $i -=3) {
for ($i = $aStart; $i >= 3; $i -= 3) {
$sumThree += $i;
}

Expand Down