Array in PHP

Da Hacknowledge.

Gli array in PHP non sono come negli altri linguaggi, come ad esempio il C, ovvero che vanno da 0 a N. Ma sono invece di tipo associativo facciamo un esempio di array:

<?php $mio_array['nome'] = "HdS619"; ?>

Ciò rappresenta cosa vuol dire associativo, ovvero si associa un nome x a un elemento y, in questo caso una stringa. Quindi possiamo avere degli array non contigui. Ciò però non toglie che le stringhe seguano sempre la logica contigua.
Prendiamo l'esempio di prima le 6 lettere sono accessibili da:

$mio_array['nome'][0] /* contiene H */
$mio_array['nome'][1] /* contiene d */
$mio_array['nome'][2] /* contiene S */
...

Ovviamente e' possibile creare un classico array come in C ed altri linguaggi semplicemente facendo ad esempio:

$array = array(1, 76, 45, 3455);

In questo modo otterremo un classico array con 4 elementi da $array[0] a $array[3].

Indice

[modifica] Contare gli elementi

Per contare gli elementi di un array, il php ci viene incontro con la funzione count. Che riceve come unico parametro obbligatorio un array, e come secondo parametro la modalità che consente di decidere se contare in modo ricorsivo gli elementi. Restituisce il numero di elementi trovati.

Esempio di count non ricorsivo

<?php
   $a = array("ciao", "come", "va?");
 
   $elementi = count($a);
   // Restituisce 3
?>

Per invece contarli in modo ricorsivo:

<?php
  /* Inizializzo */
  for ( $c = 0; $c < 3; ++$c ) 
        for ( $i = 0; $i < 3; ++$i ) 
              $a[$c][$i] = $i;
  /* A questo punto abbiamo
   *    a[0][0] = 0
   *    a[0][1] = 1
   *    ....
   *    a[2][1] = 1;
   *    a[2][2] = 2;
  */
 
  $elementi['ricorsivo'] = count($a, COUNT_RECURSIVE);
  /* Restituisce 12 */
  $elementi['normale'] = count($a);
  /* Restituisce 3 */
?>

[modifica] Creazione veloce di array

Gli array in php si possono creare anche in maniera veloce senza stare a assegnare manualmente a ogni posizione un valore. Per far ciò ci viene incontro il costrutto array che ci permette di creare array anche a più dimensioni.

Un array a 1 dimensione:

<?php
   $mio_array = array("ciao", "come", "va?");
   print_r($mio_array);
   /* Restituirà 
    *  Array {
    *     [0] => "ciao"
    *     [1] => "come"
    *     [2] => "va?"
    *  }
   */
?>

Un array a più dimensioni invece si può fare:

<?php
   $mio_array = array("nome" => "HdS619", 
                      "anno" => "2008",
                      "sesso" => "m");
?>

[modifica] Ottenere gli elementi

Per ottenere gli elementi in modo veloce esiste la funzione list.
Facciamo finta di avere un array contenente i valori nome, cognome, anno, sesso e lavoro di un contatto normalmente dovremmo fare cose come:

$nome = $nostro_array[0];
$cognome = $nostro_array[1]; 
...

con la funzione list invece possiamo fare in un attimo in questo modo:

<?php
  list($nome, $cognome, $anno, $sesso, $lavoro) = $nostro_array;
?>

Ciò assegnerà automaticamente alla variabile $nome il primo valore di $nostro_array, a $cognome il secondo e così via.

[modifica] Link di riferimento

Come link di riferimento alle sterminate funzione per gestire gli array rimando alla guida ufficiale del php: http://www.php.net/manual/it/ref.array.php

Strumenti personali