PHP
misakiString
last index:
$var[strlen($var-1)];
Array
$arr = ['one', 'two', 'three'];
Добавить:
$arr[] = 'four';
Изменить:
$arr[1] = 'four';
Удалить:
unset($arr[1]);
Объединение массивов:
[1, 2, 3] + [4, 5, 6];
Сравнение:
[] == []
[1] != [2]
Функции:
sizeof($arr); - размер массива
in_array('apple', $arr); - проверка, существует ли элемент в массиве
empty($arr); - проверяет, пустой ли массив
end($arr); - последний элемент массива
print_r($arr); - вывод массива
function myMax($arr) { if(empty($arr)) { return 'arr is empty'; } $max = $arr[0]; foreach ($arr as $item) { if ($item > $max) { $max = $item; } } return $max; }
Ассоциативный массив
$arr = [ ['one' => '1'], ['two' => '2'], ['three' => '4'], ]; // достать элементы многомерного массива for($i=0; $i<sizeof($arr); $i++) { foreach ($arr[$i] as $item => $value) { echo $item . ': ' . $value . '<br>'; } }
Преобразование типов
// неявное преобразование типов $foo = '3'; $foo += 2; echo $foo . '<br>'; $foo += 1.3; echo $foo . '<br>'; $foo = 5 + "15 little piggies"; echo $foo . '<br>'; // явное $foo = 1; $bar = (boolean) $foo; var_dump($bar);
Построение абстракций
// лямбда-функции $square = function($sum) { return $sum * $sum; }; // функция высшего порядка $sumOfSquare = function ($num_1, $num_2) use ($square) { return $square($num_1) + $square($num_2); }; //echo $sumOfSquare($square(3), 5); // линейно-рекурсивный процесс function myPow($base, $exp) { if ($exp==1) return $base; return $base * myPow($base, $exp-1); } //echo myPow(4,3); // линейно-итеративный процесс function myPowClone($base, $exp) { $powIter = function ($base, $exp, $acc) use (&$powIter) { if($exp==1) {return $acc;} $powIter($base, $exp-1, $acc*$base); }; return $powIter($base, $exp, 1); } // echo myPow(4,2); // сумма чисел от a до b function sumIntegers ($a, $b) { if($a > $b) return 0; return $a + sumIntegers($a+1, $b); }; //echo sumIntegers(1,8); // сумма кубов function sumCubes($a, $b) { if($a > $b) return 0; return ($a * $a * $a) + sumCubes($a+1, $b); } //echo sumCubes(2,3); // обобщенная функция вычисления суммы последовательности от a до b // (чисел, квадратов, кубов и т.д.) function sum ($a, $b, $func) { if($a > $b) return 0; return $func($a) + sum($a+1, $b, $func); } echo sum(1,5,function ($x){return $x*$x*$x;});