Curs Php-mysql

O functie ce returneaza numarul cel mai apropiat, imediat mai mic si mai mare. Aceasta functie, closestLowerHigherNr(), primeste doi parametri: un array cu numere, si numarul. Compara acel numar cu numerele din array, apoi returneaza un array asociativ cu trei elemente: numarul imediat mai mic ('lower'), numarul imediat mai mare ('higher'), si cel mai apropiat numar ('closest').ay, than returns an associative array with the "lower", "higher", and "closest" number.
<?php
// returneaza un array cu numerele din $array imediat mai mic, mai mare si cel mai apropiat de $nr
function closestLowerHigherNr($array, $nr) {
  // Curs PHP-MySQL - https://marplo.net/php-mysql/
  sort($array);      // sorteaza array-ul cu numerele in ordine crescatoare

  // seteaza array-ul care va fi returnat, initial cu numerele cel mai mare, cel mai mic din $array, si $nr
  $re_arr = array('lower'=>min(current($array), $nr), 'higher'=>max(end($array), $nr), 'closest'=>$nr);

  // parcurge numerele, retine in $re_arr numerele imediat mai mic, mai mare, cel mai apropiat
  foreach($array AS $num){
    if($nr > $num) $re_arr['lower'] = $num;
    else if($nr <= $num){
      // daca numarul curent din $array e egal cu $nr, sau imediat mai mare, retine acel numar
      // si opreste instructiunea foreach()
      $re_arr['higher'] = $num;
      break;
    }
  }

  // aici se obtine cel mai apropiat numar de $nr
  // (numarul ('lower' or 'higher') cu cea mai mica diferenta fata de $nr)
  $re_arr['closest'] = (abs($nr - $re_arr['lower']) < abs($re_arr['higher'] - $nr)) ? $re_arr['lower'] : $re_arr['higher'];

  return $re_arr;
}

// Exemplu
$numbers = array(-8, -3, 0, 5.8, 12, 9, 2.1);

// apeleaza functia cu trei numere pt test
$test1 = closestLowerHigherNr($numbers, -6);
$test2 = closestLowerHigherNr($numbers, 3);
$test3 = closestLowerHigherNr($numbers, 9);

// verifica valorile din $test1, $test2, $test3
var_export($test1);       // array ( 'lower' => -8, 'higher' => -3, 'closest' => -8 )
var_export($test2);       // array ( 'lower' => 2.1, 'higher' => 5.8, 'closest' => 2.1 )
var_export($test3);       // array ( 'lower' => 5.8, 'higher' => 9, 'closest' => 9 )
?>
Aceasta functie e buna si in cazul in care $nr este mai mic, sau mai mare decat oricare numar din $array.
Exemplu:
<?php
// Aici se adauga functia closestLowerHigherNr()

$numbers = array(-8, 2, 12);
$test4 = closestLowerHigherNr($numbers, -23);      // -23 e mai mic decat oricare numar din $numbers
$test5 = closestLowerHigherNr($numbers, 18);       // 18 e mai mare decat oricare numar din $numbers

// verifica valorile din $test4, $test5
var_export($test4);       // array ( 'lower' => -23, 'higher' => -8, 'closest' => -23 )
var_export($test5);       // array ( 'lower' => 12, 'higher' => 18, 'closest' => 18, )
?>

- Iata si un exemplu practic de utilizare a functiei closestLowerHigherNr(). Obtine directia cardinala (Nord, Est, Sud-Est, etc.) in functie de o valoare aleatoare in grade de cerc.
<?php
// Aici se adauga functia closestLowerHigherNr()

// array cu graade de cerc si directia lor cardinala
$direction = array(0=>'Est',30=>'Est-Est-Nord',45=>'Nord-Est',60=>'Nord-Nord-Est',90=>'Nord',120=>'Nord-Nord-Vest',135=>'Nord-Vest',150=>'Vest-Vest-Nord',180=>'Vest',210=>'Sud-Vest-Vest',225=>'Sud-Vest',240=>'Sud-Sud-Vest',270=>'Sud',300=>'Sud-Sud-Est',315=>'Sud-Est',330=>'Sud-Est-Est');

$degrees = array_keys($direction);      // retine indexii / gradele intr-un array

// cateva directii (in grade de cerc)
$deg1 = 0;
$deg2 = 50;
$deg3 = 215;

// obtine array-ul in care e si numarul /indexul cel mai apropiata fiecarui grad
$drg1 = closestLowerHigherNr($degrees, $deg1);
$drg2 = closestLowerHigherNr($degrees, $deg2);
$drg3 = closestLowerHigherNr($degrees, $deg3);

// obtine directia cardinala apropiat pt fiecare grad (folosind cel mai apropiat numar)
$dtn1 = $direction[$drg1['closest']];
$dtn2 = $direction[$drg2['closest']];
$dtn3 = $direction[$drg3['closest']];

// test
echo "$deg1 grade = $dtn1";       // 0 grade = Est
echo "$deg2 grade = $dtn2";       // 50 grade = Nord-Est
echo "$deg3 grade = $dtn3";       // 215 grade = Sud-Vest-Vest
?>

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag HTML5 este indicat sa contina meniul cu link-uri de navigare in site?
<section> <nav> <article>
<nav><ul>
 <li><a href="http://coursesweb.net/css/" title="CSS Course">CSS Course</a></li>
 <li><a href="http://www.marplo.net/jocuri/" title="Flash Games">Flash Games</a></li>
</ul></nav>
Ce proprietate CSS muta elementrul in dreapta sau stanga de la locul unde e?
text-align clear float
.some_class {
  width: 30%;
  float: left;
}
Clic pe metoda obiectului Math care rotunjeste numarul x descrescator la cel mai apropiat intreg.
Math.ceil(x) Math.abs(x) Math.floor(x)
var num = 12.34567;
num = Math.floor(num);
alert(num);       // 12
Indicati functia PHP care returneaza numarul de caractere dintr-un sir.
mb_strlen() count() stristr()
$str = "sir cu caractere utf-8 åèö";
$nrchr = mb_strlen($str);
echo $nrchr;        // 29
Clic pe raspunsul potrivit la intrebarea: "When it happened?".
On the 7th of July 1996 It is a quarter to 5. Nice weather.
When it happened? On the 8th of August 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Indicati raspunsul potrivit la intrebarea: "¿Cuando sucedió?".
Hace buen tiempo. En el 8 de Agosto de 2001 Son las tres menos cuarto.
¿Cuando sucedió? En el 8 de Agosto de 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Obtine numarul cel mai apropiat, imediat mai mic si mai mare

Last accessed pages

  1. Mini vocabular Englez-Roman (4281)
  2. Verbe frazale din limba Engleza (24901)
  3. Trecutul simplu si continuu - Past Tense Simple and Continuous (59327)
  4. Curs PHP MySQL, Tutoriale si Scripturi PHP (65572)
  5. Verbe Dinamice si Statice - Dynamic and Static Verbs (6241)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (2728)
  2. Curs HTML gratuit Tutoriale HTML5 (2180)
  3. Curs si Tutoriale JavaScript (1962)
  4. Curs PHP MySQL, Tutoriale si Scripturi PHP (1935)
  5. Curs CSS Online Tutoriale CSS3 (1846)