in_array

La funzione in_array(valore da trovare, $nome_array) serve per cercare ciò che è indicato dal primo parametro dentro l'array indicato come secondo parametro. La funzione restituisce TRUE se il valore viene trovato, altrimenti FALSE. A differenza di array_search() questa funzione non restituisce l'indice al quale si trova il valore.

La ricerca è sempre case-sensitive quando il valore da trovare è una stringa. Si può aggiungere TRUE come terzo parametro per controllare anche il tipo di dato (stringa o integer).

<?php 
$cartoni = array("Homer", "Marge", "Bart", "Lisa");
$ricerca = in_array("Maggie", $cartoni);
if ($ricerca) {
	echo "Il valore cercato è stato trovato, la funzione ha restituito TRUE";
}
else {
	echo "Il valore cercato non è stato trovato, la funzione ha restituito FALSE";
}
echo "<br>";
echo "<br>";
if ($ricerca === 0) {
	echo "FALSE è === a 0";
}
else {
	echo "La funzione in_array() non restituisce l'indice come array_search() ma solo TRUE o FALSE, quindi il controllo con l'operatore di identità non andrà mai a buon fine perchè FALSE non è identico a 0 ma solo uguale";
}
?>

key

La funzione key($nome_array) serve per conoscere la chiave dell'elemento su cui si trova il puntatore interno dell'array.

<?php 
$mesi = array(1 => "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre");
for ($i=1; $i < 6; $i++) { 
	$mese_corrente = key($mesi);
	echo "<p>Il puntatore dell'array si trova sull'elemento con chiave ".$mese_corrente."</p>";
	next($mesi);
}
 ?>

krsort

La funzione krsort($nome_array) serve per ordinare le coppie chiave-valore in base alla chiave ma in ordine inverso. L'associazione con i valori viene mantenuta. Questa funzione ha senso usarla quando le chiavi sono delle stringhe.

La funzione ritorna solo TRUE o FALSE in base al successo o meno dell'ordinamento.

E' anche possibile indicare un secondo parametro che definisce come devono essere ordinati gli elementi: SORT_REGULAR, SORT_NUMERIC, SORT_STRING, SORT_LOCALE_STRING, SORT_NATURAL, SORT_FLAG_CASE.

<?php 
$zampe = array('cane' => 4, 'ragno' => 8, 'passerotto' => 2, 'mosca' => 6, 'millepiedi' => 1000);
$zampe2 = krsort($zampe);
if ($zampe2) {
	echo "<p>L'ordinamento dell'array \$zampe &egrave; avvenuto con successo.</p>";
}
else {
	echo "<p>L'ordinamento dell'array \$zampe non &egrave; avvenuto.</p>";
}
print_r($zampe);
 ?>

ksort

La funzione ksort($nome_array) serve per ordinare le coppie chiave-valore in base alla chiave. L'associazione con i valori viene mantenuta. Questa funzione ha senso usarla quando le chiavi sono delle stringhe.

La funzione ritorna solo TRUE o FALSE in base al successo o meno dell'ordinamento.

E' anche possibile indicare un secondo parametro che definisce come devono essere ordinati gli elementi: SORT_REGULAR, SORT_NUMERIC, SORT_STRING, SORT_LOCALE_STRING, SORT_NATURAL, SORT_FLAG_CASE.

<?php 
$zampe = array('cane' => 4, 'ragno' => 8, 'passerotto' => 2, 'mosca' => 6, 'millepiedi' => 1000);
$zampe2 = ksort($zampe);
if ($zampe2) {
	echo "<p>L'ordinamento dell'array \$zampe &egrave; avvenuto con successo.</p>";
}
else {
	echo "<p>L'ordinamento dell'array \$zampe non &egrave; avvenuto.</p>";
}
print_r($zampe);
 ?>

list

La funzione list($variabile, $variabile, $variabile) serve per assegnare alle variabili passate come parametri i valori dell'array indicato alla destra dell'uguale (questo è un caso particolare in cui la funzione si scrive a sinistra dell'uguale).

La funzione list() richiede che l'array abbia chiavi numeriche che iniziano da 0, se così non è le chiavi originali vengono eliminate e sostituite con chiavi numeriche.

E' anche possibile passare alla funzione elementi di array anzichè semplici funzioni.

<?php 
$versi = array("miagola", "abbaia", "barrisce", "raglia");
list($gatto, $cane, $elefante, $asino) = $versi;
echo "<p>La variabile \$gatto vale ".$gatto.", la variabile \$cane vale ".$cane.", la variabile \$elefante vale ".$elefante.", la variabile \$asino vale ".$asino.".</p>";
print_r($versi);
echo "<br>";
//senza definire prima gli indici dell'array (stampa in ordine inverso)
list($animali[0], $animali[1], $animali[2], $animali[3]) = $versi;
print_r($animali);
echo "<br>";
//con definizione degli indici prima (stampa in ordine normale)
//i valori tanto verranno sovrascritti
$animali2 = array(0, 0, 0, 0);
list($animali2[0], $animali2[1], $animali2[2], $animali2[3]) = $versi;
print_r($animali2);
 ?>

natcasesort

natsort

next

La funzione next($nome_array) serve per trovare l'elemento dell'array che sta nella posizione successiva a quella attuale indicata dal puntatore interno.

<?php 
$mesi = array("gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre");
$mese_successivo = next($mesi);
echo "<p>Prima chiamata</p>";
echo "<p>Il puntatore dell'array è stato spostato ed ora si trova alla posizione dell'elemento ".$mese_successivo."</p>";
$mese_successivo = next($mesi);
echo "<p>Seconda chiamata</p>";
echo "<p>Il puntatore dell'array è stato spostato ed ora si trova alla posizione dell'elemento ".$mese_successivo."</p>";
$mese_successivo = next($mesi);
echo "<p>Terza chiamata</p>";
echo "<p>Il puntatore dell'array è stato spostato ed ora si trova alla posizione dell'elemento ".$mese_successivo."</p>";
 ?>

prev

La funzione prev($nome_array) serve per trovare l'elemento dell'array che sta nella posizione precedente a quella attuale indicata dal puntatore interno.

<?php 
$mesi = array("gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre");
$mese = next($mesi);
echo "<p>Primo avanzamento</p>";
echo "<p>Il puntatore dell'array è stato spostato in avanti alla posizione dell'elemento ".$mese."</p>";
$mese = next($mesi);
echo "<p>Secondo avanzamento</p>";
echo "<p>Il puntatore dell'array è stato spostato in avanti alla posizione dell'elemento ".$mese."</p>";
$mese = prev($mesi);
echo "<p>Indietro di uno</p>";
echo "<p>Il puntatore dell'array è stato spostato indietro alla posizione dell'elemento ".$mese."</p>";
$mese = prev($mesi);
echo "<p>Indietro di uno</p>";
echo "<p>Il puntatore dell'array è stato spostato indietro alla posizione dell'elemento ".$mese."</p>";
$mese = prev($mesi);
echo "<p>Indietro di uno</p>";
echo "<p>Il puntatore dell'array è stato spostato indietro alla posizione dell'elemento ".$mese."</p>";
 ?>

range

La funzione range(valore minimo, valore massimo) serve per creare un array le cui chiavi sono generate automaticamente e i cui valori partono da quello passato come primo parametro e arrivano fino al valore passato come secondo parametro. E' anche possibile specificare un terzo parametro che definisce lo step.

<?php 
$ore = range(0, 12);
print_r($ore);
echo "<br>";
echo "<br>";
$ore = range(12, 0);
print_r($ore);
echo "<br>";
echo "<br>";
$mezzore = range (0, 12, 0.5);
print_r($mezzore);
echo "<br>";
echo "<br>";
$alfabeto = range("a", "z");
print_r($alfabeto);
 ?>

reset

La funzione reset($nome_array) serve per riportare il puntatore dell'array al primo elemento e restituirne il valore. Si usa quando si esegue un ciclo sull'array.

<?php
$arcobaleno = array("rosso", "arancione", "giallo", "verde", "azzurro", "indaco", "viola");
$colore = next($arcobaleno);
echo $colore;
echo "<br>";
$colore = next($arcobaleno);
echo $colore;
echo "<br>";
$colore = next($arcobaleno);
echo $colore;
echo "<br>";
$colore = reset($arcobaleno); 
echo $colore;
?> 

rsort

La funzione rsort($nome_array) serve per ordinare le coppie chiave-valore in base al valore in ordine inverso. Gli indici verranno ridefiniti partendo da 0 e le chiavi stringa andranno perse.

La funzione ritorna solo TRUE o FALSE in base al successo o meno dell'ordinamento.

E' anche possibile indicare un secondo parametro che definisce come devono essere ordinati gli elementi: SORT_REGULAR, SORT_NUMERIC, SORT_STRING, SORT_LOCALE_STRING, SORT_NATURAL, SORT_FLAG_CASE.

<?php 
$film = array("Pulp Fiction", 'thriller' => "The Next Three Days", "Inside Man", 'commedia' => "Ted");
$scaffale = rsort($film);
if ($scaffale) {
	echo "<p>L'ordinamento all'inverso è andato a buon fine</p>";
}
else {
	echo "<p>Non è stato possibile ordinare l'array</p>";
}
print_r($film);
 ?>

shuffle

La funzione shuffle($nome_array) serve per mescolare casualmente gli elementi. Le chiavi vengono rigenerate automaticamente e le chiavi stringa non vengono mantenute.

La funzione ritorna solo TRUE o FALSE in base al successo o meno dell'ordinamento.

<?php 
$lettere = array('vocale' => "a", "b", "c", "d", "e", "f", "g", 'muta' => "h", "i", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", 'consonante' => "z");
$ruzzle = shuffle($lettere);
if ($ruzzle) {
	echo "<p>Puoi iniziare una nuova partita!</p>";
}
else {
	echo "La funzione shuffle non è andata a buon fine";
}
print_r($lettere);
echo "<br>";
echo "<br>";
$ruzzle = shuffle($lettere);
print_r($lettere);
 ?>

sort

La funzione sort($nome_array) serve per ordinare le coppie chiave-valore in base al valore. Gli indici verranno ridefiniti partendo da 0 e le chiavi stringa andranno perse.

La funzione ritorna solo TRUE o FALSE in base al successo o meno dell'ordinamento.

E' anche possibile indicare un secondo parametro che definisce come devono essere ordinati gli elementi: SORT_REGULAR, SORT_NUMERIC, SORT_STRING, SORT_LOCALE_STRING, SORT_NATURAL, SORT_FLAG_CASE.

<?php 
$film = array("Pulp Fiction", 'thriller' => "The Next Three Days", "Inside Man", 'commedia' => "Ted");
$scaffale = sort($film);
if ($scaffale) {
	echo "<p>L'ordinamento all'inverso è andato a buon fine</p>";
}
else {
	echo "<p>Non è stato possibile ordinare l'array</p>";
}
print_r($film);
 ?>

uasort

uksort

usort