Archivio
Sponsorize!
-
Articoli recenti
Argomenti
- CMS (22)
- Flash (11)
- Formazione (14)
- glossario (3)
- Hardware (9)
- Javascript (20)
- jQuery (13)
- Layouts (1)
- Linux (1)
- PHP (5)
- Progettazione (53)
- CSS (18)
- Ergonomia&Usabilità (1)
- Risorse (15)
- SEO & SEM (22)
- Software (12)
- Tecnogadget (2)
- video (1)
- web2.0 (39)
Twitter- Scrivere usando il cervello, facile con 9 mila euro http://bit.ly/cEaVL4 13 mar 10
- PHP/MySQL Contact Form with jQuery http://short.to/1gsgy 13 mar 10
- Stasera concerto di cammariere a Padova. Fra poco inizia :) http://twitgoo.com/k9kpt 12 mar 10
- This Is An Invitation To Break Glass: Don’t you hate when your bus gets into an… http://goo.gl/fb/H9kr #design 12 mar 10
- Cornification: Who wouldn’t love a pillow made up of velcro corn kernels, show of… http://goo.gl/fb/34ia #design 12 mar 10
- #ff @nessun_dorma @elisatron @h_mansa @ciropellegrino @axxe16 12 mar 10
- Scrivere usando il cervello, facile con 9 mila euro http://bit.ly/cEaVL4 12 mar 10
- #design Alphabetic #Mugs: Brazilian designers have long earned reputation of creative guys… http://goo.gl/fb/5tvF 12 mar 10
- Apple muove per il negozio italiano di iBooks per iPad http://short.to/1h04v 12 mar 10
- Google pubblica Sputnik, piattaforma di test JavaScript 3 http://short.to/1hpiv 12 mar 10
Tag
actionscript ajax blog browser casual game CMS CSS del.icio.us design eeepc estensioni firefox Flash Formazione framework freeware Gallery google guida howto icone inspiration Javascript Joomla jQuery js lista mestre mobile PHP plugin Progettazione Risorse script seo social network sviluppo swf tool tutorial web 2.0 web application webdesign Wordpress xhtml




Appunti di PHP: gli array
In PHP, con il termine array identifichiamo una struttura dove i dati sono mantenuti grazie ad una associazione chiave –> valore.
Semplificando, possiamo distinguere due tipi principaly di array:
Possiamo creare una array così:
$a = array(’I',’II’,'III’,'IV’,'V’);
Oppure così:
$a[] = ‘I’;
$a[] = ‘II’;
$a[] = ‘III’;
$a[] = ‘IV’;
$a[] = ‘V’;
In entrambi i modi le chiavi (numeriche) vengono create automaticamente: in questo caso da 0 a 4.
Quando utilizziamo array associative possiamo dichiararle in questo modo:
$a = array( ‘primo’=>’I',’secondo’=>’II’,'terzo’=>’III’,'quarto’=>’IV’,'quinto’=>’V');
oppure
$a['primo'] = ‘I’;
$a['secondo'] = ‘II’;
$a['terzo'] = ‘III’;
$a['quarto'] = ‘IV’;
$a['quinto'] = ‘V’;
Possiamo parlare invece di array nidificati quando un elemento di un array è a sua volta un array. In questo caso la costruzione non cambia molto:
$a = array(
‘romani’ =>array( ‘primo’=>’I',’secondo’=>’II’,'terzo’=>’III’,'quarto’=>’IV’,'quinto’=>’V'),
‘arabi’=>array(’primo’=>’1′,’secondo’=>’2′,’terzo’=>’3′,’quarto’=>’4′,’quinto’=>’5′)
);
Qui di seguito alcuni esempi d’uso suddivisi per casistiche:
Leggere il cuntenuto di un array
In assoluto una delle attività replicate più spesso è la lettura del contenuto di un array. In particolare la lettura a fini di debug, la lettura “semplice” e quella “ricorsiva”.
Per leggere velocemente il contenuto di un array due sono i comandi utili: print_r e var_dump. Entrambe le funzioni si occupano di stampare a video il contenuto di un array, la seconda genera un outpu più prolisso rispetto a print_r. Fate una prova:
$a = array(
‘romani’ =>array( ‘primo’=>’I',’secondo’=>’II’,'terzo’=>’III’,'quarto’=>’IV’,'quinto’=>’V'),
‘arabi’=>array(’primo’=>’1′,’secondo’=>’2′,’terzo’=>’3′,’quarto’=>’4′,’quinto’=>’5′)
);
print_r($a);
echo ”
n”;
var_dump($a);
Per elaborare in modo ricorsivo gli elementi di un array si può utilizzare foreach. Facciamo un esempio:
$idArr = array(”Pluto”,”Topolino”,”Pippo”,”Paperoga”);
$stringa =”
“;- $i
foreach ($idxArr as $i)
$stringa .=”
“;
$stringa .=”
“;
echo $stringa;
Nel caso di un array annidato è necessario creare una funzione che chiama se stessa.
function leggoArray($arr) {
// controlla se l’input è effettivamente un array
if(!is_array($arr)) {die (”L’argomento passato non è un array”);}
// scorre l’array
foreach ($arr as $value) {
// se è un array annidato scorre in modo ricorsivo
if(is_array($value)) {
leggoArray($value);
} else {
// stampa l’elemento
echo $value . “n”;
}
}
}
// definiamo ora l’array annidato
$dati = array(
“Europa”,
array (”Francia”, “Spagna”),
array (”Italia”,
array(”Liguria”,”Toscana”))
);
// richiamiamo la funzione
leggoArray($dati);
Conteggio degli elementi di un array
Per contare quanti elementi contiene un array si può utilizzare la funzione count(). In questo modo:
$paperopoli = array(”pippo”,”plute”,”paperino”,”paperoga”);
echo “Paperopoli ha ” . count($paperopoli) . ” elementi”;
Composizione/scomposizione di un array
Tramite le funzioni implode() e explode() è possibile ottenere rispettivamente una stringa da un array e viceversa.
//definiamo la stringa
$alfabeto = “a b c d e f g h i l m n o p q r s t u v z”;
$array_alfabeto = explode(” “,$alfabeto);
print_r($array_alfabeto);
//ora ricostituiamo una nuova stringa
$newAlfabeto = implode(”, “,$array_alfabeto);
echo ”
n” . $newAlfabeto;
Inserimento /eliminazione di elementi da un array
Con array_push() aggiungo un elemento alla fine dell’array:
array_push($paperopoli, “pinotto”);
print_r($paperopoli);
Con array_shift() estraggo un elemento all’inizio dell’array:
array_shift($paperopoli);
print_r($paperopoli);
Con array_unshift aggiungo un elemento all’inizio dell’array:
array_unshift($paperopoli,”la banda bassotti”);
print_r($paperopoli);
Con array_pop() estraggo un elemento alla fine dell’array:
array_pop($paperopoli);
print_r($paperopoli);
Con array_splice() si può rimuovere una porzione dell’array e sostituirla con altra:
$a= array(”pippo”,”pluto”,”paperino”,”paperoga”,”gastone”);
array_splice($input, 2);
// $input è ora array(”pippo”, “pluto”)
Aggiungendo un argomento otteniamo anche la sostituzione degli elementi dell’array:
$a= array(”pippo”,”pluto”,”paperino”,”paperoga”,”gastone”);
array_splice($a, 2, 0, “minni”);
Con array_slice() estraete un sottoinsieme da un array:
$a= array(”pippo”,”pluto”,”paperino”,”paperoga”,”gastone”);
$slice = array_slice($paperopoli,1,3);
print_r($slice);
Eliminare elementi duplicati da un array
Per eliminare i valori duplicati contenuti in un array si può utilizzare la funzione array_unique():
$numeri = array(10,20,10,15,16,17,18,19,19,19,1,1,1,1,4,98,97,99,98,0);
//estrae gli elementi unici e li mette in un nuovo array
$numeriunici = implode(”, “,array_unique($numeri));
echo $numeriunici;
Reindicizzare un array
Quando si eliminano degli elementi da un array (ad esempio utilizzando unset()) rimangono dei “buchi” nelle chiavi numeriche. Utilizzando array_values() è possibile reindicizzare l’array:
$paperopoli = array(”pippo”,”pluto”,”paperino”,”paperoga”);
unset($paperopoli[2]);
print_r($paperopoli);
echo ”
“;
$paperopoli = array_values($paperopoli);
print_r($paperopoli);
“Mescolare” un array in modo random
Utilizzando shuffle() è possibile reindicizzare in modo random il contenuto di un array
$numeri= array(1,2,3,4,5);
shuffle($numeri);
echo implode(”, “,$numeri);
Cercare dentro un array
Rispettivamente con array_key_exists(”chiave”,Array) e in_array(”valore”,Array) possiamo controllare se una data chiave o un dato valore è presente nell’array:
$data = array(
“Euro” => “Italia”,
“Dollaro” => “USA”,
“Sterlina” => “Inghilterra”
);
echo array_key_exists(”euro”,$data) ? “La chiave è presente nell’array” : “La chiave non c’è”;
echo ”
“;
// ora controllo un valore
echo in_array(”USA”,$data) ? “Valore presente in array” : “valore assente dall’array”;
Filtrare un array
A volte è necessario filtrare i valori di un array secondo un qualche criterio array_filter() sottopone ciascun elemento di un array ad una funzione e ne verifica il valore restituito
function positivo($value) {
return ($value > 0) ? true : false;
}
// definiamo un array di numeri
$numeri= array(-10.-2,-4,-10,5,20,45,-1);
print_r(array_filter($numeri, ‘positivo’));
Uso delle array nei form
Le array risultano particolarmente utili quando abbiamo a che vare con valori multipli passati da un form:
// Si legge il contenuto di un array inviata via post
if (isset($_POST['invia'])) {
print_r($_POST['scelta']);
}
?>
[/php]