Functia prezentata in aceasta pagina poate fi utilizata in PHP pentru impartirea /separarea unui sir alfanumeric (un sir cu mai multe sub-siruri de forma: "Nume Numar", separate printr-un anumit caracter).
Aceasta functie separa "Nume" de "Numar", si le adauga separat in doua array-uri, in ordinea lor din sir.
- Vedeti exemplele si comentariile din cod.

Codul functiei

/*
 primeste 3 argumente:
 - $str = sirul alfanumeric,
 - $dlm1 = caracterul ce separa Nume de Numar
 - $dlm2 = caracterul ce separa perechile de sub-siruri: "Nume Numar"

 Un sir in felul acesta:
     "Nume[$dlm1]Numar[$dlm2]Nume[$dlm1]Numar"
  - caracterele de separare ($dlm1, si $dlm2) pot fi orice caracter, de exemplu: spatiu, liniuta, punct, virgula, etc.
 returneaza un array bidimensional, cu Nume si Numar din $str separate in doua array-uri, in ordinea lor din sir
*/
function splitNumeNumar($str, $dlm1, $dlm2) {
  // Curs PHP-MySQL: https://marplo.net/php-mysql/
  // array cu caractere ce trebuie escapate (cu '\') in RegExp
  $chrs = array('.','(',')','[',']','<','>','?',"'",'^','*','-','+','\\','/');
  if(in_array($dlm1, $chrs)) $dlm1 = '\\'.$dlm1;
  if(in_array($dlm2, $chrs)) $dlm2 = '\\'.$dlm2;

  // obtine un array cu perechile 'Nume-Numar' din $str
  if(preg_match_all('/([a-z \._\-'. $dlm1 . $dlm2. ']+[0-9]+)/i', $str, $mt)) {
    $re = array();              // variabila pt datele care vor fi returnate
    $nrmt = count($mt[0]);      // Numar de sub-siruri

    // parcurge sub-sirurile gasite
    for($i=0; $i<$nrmt; $i++) {
      // separa Nume de Numar, le adauga in array-ul $re
      if(preg_match('/([a-z \._\-'. $dlm1. ']+)([0-9]+)/i', $mt[0][$i], $mt2)) {
        $re['Nume'][$i] = trim($mt2[1], ' '. $dlm1);
        $re['num'][$i] = $mt2[2];
      }
    }

    return $re;
  }
  else return false;
}
- Exemplu:
<?php
// AICI adauga functia splitNumeNumar()

// sir cu Nume si Numar separate prin punct '.', perechile de sub-siruri separate prin virgula ','
$str1 = 'Curs PHP-MySQL.2013, CoursesWeb.net.2011, MarPlo.net.2009';
$split_str1 = splitNumeNumar($str1, '.', ',');

//  text cu Nume si Numar separate prin punct spatiu, perechile de sub-siruri separate prin virgula ','
$str2 = 'Code Snippets 12, Cod PHP 2011, MarPlo.net Cursuri 2009';
$split_str2 = splitNumeNumar($str2, ' ', ',');

//  sir cu Nume si Numar si perechile de sub-siruri separate prin spatiu
$str3 = 'Tutoriale PHP-MySQL 23 Lectii Ajax 9 Web Development 2013';
$split_str3 = splitNumeNumar($str3, ' ', ',');

// test
echo "<pre>// De la \$str1 \n";
var_export($split_str1);

echo "\n// De la \$str2 \n";
var_export($split_str2);

echo "\n// De la \$str3 \n";
var_export($split_str3);
echo '</pre>';
Rezultat:
// De la $str1 
array (
  'Nume' => array (
    0 => 'Curs PHP-MySQL',
    1 => 'CoursesWeb.net',
    2 => 'MarPlo.net',
  ),
  'num' => array (
    0 => '2013',
    1 => '2011',
    2 => '2009',
  )
)
// De la $str2 
array (
  'Nume' => array (
    0 => 'Code Snippets',
    1 => 'Cod PHP',
    2 => 'MarPlo.net Cursuri',
  ),
  'num' => array (
    0 => '12',
    1 => '2011',
    2 => '2009',
  )
)
// De la $str3 
array (
  'Nume' => array (
    0 => 'Tutoriale PHP-MySQL',
    1 => 'Lectii Ajax',
    2 => 'Web Development',
  ),
  'num' => array (
    0 => '23',
    1 => '9',
    2 => '2013',
  )
)

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag se foloseste in <table> pentru a crea celula de tip "header"?
<thead> <th> <td>
<table><tr>
  <th>Title 1</th>
  <th>Title 2</th>
</tr></table>
Ce proprietate CSS seteaza distanta dintre randuri?
line-height word-spacing margin
.some_class {
  line-height: 150%;
}
Care functie deschide o noua fereastra.
alert() confirm() open()
document.getElementById("id_button").onclick = function(){
  window.open("http://coursesweb.net/");
}
Indicati functia PHP care returneaza un array cu numele fisierelor si directoarelor dintr-un director.
mkdir() scandir() readdir()
$ar_dir = scandir("dir_name");
var_export($ar_dir);
Care din urmatoarele forme a verbului "sleep" (a dormi) se foloseste pentru viitor?
sleeping slept will sleep
He will sleep there.
- El va dormi acolo.
Care din urmatoarele forme a verbului "dormir" (a dormi) se foloseste pentru viitor?
dormido dormirá durmiendo
Él dormirá allí.
- El va dormi acolo.
Impartire Sir Alfanumeric in Array

Last accessed pages

  1. Conditional IF in Limba Engleza - Fraze Conditionale (32395)
  2. Prezent perfect si Prezent perfect continuu - Present perfect and Continuous (29375)
  3. Curs HTML gratuit Tutoriale HTML5 (26439)
  4. Expediere date la o adresa de e-mail (910)
  5. Data si Ora in engleza - Date and Time (6434)

Popular pages this month

  1. Gramatica limbii engleze - Prezentare Generala (2961)
  2. Conditional IF in Limba Engleza - Fraze Conditionale (2819)
  3. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1795)
  4. Curs HTML gratuit Tutoriale HTML5 (1687)
  5. Creare si editare pagini HTML (1528)