echo bcsqrt('2', 4)."\n"; //1.4142
$return=bcsqrt("81");
echo $return."\n";//კვ.ფესვი 9
//გამოკლება
$a='3.45';
$b='4';
echo bcsub($a,$b)."\n";
echo bcsub($a,$b, 6)."\n";
<?php
echo discount(5000, 35)."\n";
echo discount(2000, 50)."\n";
echo discount(1070, 10)."\n";
echo discount(670, 3)."\n";
function discount($price, $discount){
return $price-$price/100*$discount;
}
<?php
var_dump(isOrthogonal([1, 2], [2, -1]))."\n";
var_dump(isOrthogonal([3, -1], [7, 5]))."\n";
var_dump(isOrthogonal([1, 2, 0], [2, -1, 10]))."\n";
function isOrthogonal($arr1, $arr2) {
$prod = 0;
$count = count($arr1);
for ($i = 0; $i < $count; $i++) {
$prod += $arr1[$i]*$arr2[$i];
}
return $prod == 0? true:false;
}
/*
//JS solution:
function isOrthogonal(ar1, arr2){
let prod=0;
let count=arr1.length;
for (i=0; i<count; i++){
prod+=arr1[i]*arr2[i];
}
return prod==0? true; false;
}
*/
<?php
//moving zeros to the enda and remainig orders of remaining elements
//input:[0,1,0,3,12]=>output:[1,3,12,0,0]
function moveZeroes(&$nums) {
print_r($nums);
$count = count($nums); //counting array elements
for ($i = 0; $i < $count; $i++) {
//counting loops while situated in array
if ($nums[$i] == 0) {
//checking if number is 0
unset($nums[$i]); //unsetting this number and moving to the end
$nums[] = 0;
}
}
}
$array = [0, 1, 0, 3, 12];
moveZeroes($array);
print_r($array);
<?php
print_r(removeDuplicate_1([2,4,7,5,7,4,1]))."\n";
print_r(removeDuplicate_1([3,5,0,0,1,2,6,6]))."\n";
//Using array_unique function
function removeDuplicate_1($nums){
return array_unique($nums);
}
function removeDuplicates_2($nums){
$nums=[];
foreach ($nums as $num){
if (!in_array($num,$result)){
$result[]=$num;
}
}
return $result;
}
print_r(fizzBuzz_2(35));
function fizzBuzz_1($n){
$result = [];
for ($i = 1; $i <= $n; $i++) {
$output = "";
if ($i%3 == 0 && $i%5 == 0) {
$output = "FizzBuzz";
}if ($i%3 == 0) {
$output = "Fizz";
}if ($i%5 == 0) {
$output = "Buzz";
}if (!$output) {
$output = $i;
}
$result[] = $output;
}
}
// The solution is faster
function fizzBuzz_2($n) {
$result = [];
for ($i = 1; $i <= $n; $i++) {
if ($i%15 == 0) {
$output = "FizzBuzz";
} else if ($i%3 == 0) {
$output = "Fizz";
} else if ($i%5 == 0) {
$output = "Buzz";
} else {
$output = "$i";
}
$result[] = $output;
}
return $result;
}
SimpleXMLElement
converts array to XML
$test_array = array (
'bla' => 'blub',
'foo' => 'bar',
'another_array' => array (
'stack' => 'overflow',
),
);
$xml = new SimpleXMLElement('<rootTag/>');
to_xml($xml, $test_array);
print $xml->asXML();
function to_xml(SimpleXMLElement $object, array $data)
{
foreach ($data as $key => $value) {
if (is_array($value)) {
$new_object = $object->addChild($key);
to_xml($new_object, $value);
} else {
// if the key is an integer, it needs text with it to actually work.
if ($key != 0 && $key == (int) $key) {
$key = "key_$key";
}
$object->addChild($key, $value);
}
}
}
echo isIsogram("Password")."\n";
echo isIsogram_2("Tkemaladze")."\n";
//Using isset function
function isIsogram($str){
$str=strtolower($str);//turn to lower case
$len=strlen($str);//count lenght of word array
$array=[];//create new array
for ($i=0; $i<$len; $i++){
if (!isset($array[$str[$i]])){
$array[$str[$i]]=true;
}else{
return false;
}
}
return true;
}
//usinf in-array function
function isIsogram_2($str){
$str=strtolower($str);//turn to lower case
$len=strlen($str);//count lenght of word array
$array=[];//create new array
for ($i=0; $i<$len; $i++){
if (in_array($str[$i], $array)){
return true;
}else{
$array[]=$str[$i];
}
}
return true;
}
echo utopianTree(5)."\n";
//Using for loops
function utopianTree($n) {
$val = 1;
for ($i = 0; $i < $n; $i++) {
if ($i%2 == 0) {
//doubled for each odd year
$val *= 2;
} else {
//increased by one for each even year
$val++;
}
}
return $val;
}
echo timeInWords(5, 45)."\n";
echo timeInWords(3, 00)."\n";
echo timeInWords(7, 15)."\n";
echo timeInWords(6, 30)."\n";
echo timeInWords(2, 50)."\n";
echo timeInWords(8, 01)."\n";
echo timeInWords(9, 59)."\n";
//Using else if function
function timeInWords($h, $m) {
$res = (" ");
if ($m == 00) {
$res = $h . " o'clock";
} else if ($m == 30) {
$res = "Half past " . $h;
} else if ($m == 15) {
$res = "Quarter past " . $h;
} else if ($m == 45) {
$res = "Quarter to " . $h + 1;
} else if ($m < 30) {
$res = $m . " minutes past " . $h;
} else {
$res = 60 - $m . " minutes to " . $h + 1;
}
return $res;
}
//Using switch function
function timeInWords_2($h, $m) {
$res = (' ');
switch ($m) {
case '00';
$res = $h . " o'clock";
break;
case '30';
$res = "Half past " . $h;
break;
case '45';
$res = "Quarter to " . $h + 1;
break;
case '15';
$res = "Quarter past " . $h;
break;
case $m < 30;
$res = $m . " minutes past " . $h;
break;
case $m > 30;
$res = 60 - $m . " minutes to " . $h + 1;
break;
}
return $res;
}
//Both work, second solution is mine