In questo articolo affronteremo la gestione base degli array PHP in WordPress illustrandone alcuni casi d'uso concreti.
Esistono due tipi di array che potete utilizzare: lineari ed associativi. La differenza sostanziale sta nel fatto che gli array associativi prevedono l'uso di un'etichetta (chiave) per le voci.
$linear = array( 'a', 'b', 'c' );
$assoc = array(
'foo' => 'a',
'bar' => 'b',
'baz' => 'c'
);
Ecco come si accede ai valori di ciascun tipo di array:
$linear_value = $linear[1]; // 'b'
$assoc_value = $assoc['bar']; // 'b'
L'indice degli array parte sempre da 0, come in JavaScript. Per sapere se un array contiene elementi si utilizza la funzione count()
:
$linear_size = count( $linear ); // 3
$assoc_size = count( $assoc ); // 3
Per eseguire un loop sugli array solitamente si utilizzano i costrutti for
e foreach
. Ecco il primo:
for( $i = 0; $i < count( $linear ); $i++ ) {
echo $linear[$i] . ' ';
}
// 'a' 'b' 'c'
Il secondo costrutto è più usato sugli array associativi:
foreach( $assoc as $key => $value ) {
echo $key . ':' . $value . ' ';
}
// foo:'a' bar: 'b' baz: 'c'
Oppure se vi interessano solo i valori e non le chiavi:
foreach( $assoc as $key ) {
echo $key['foo'] . ' ' . $key['bar'] . $key['baz'];
}
// 'a' 'b' 'c'
Tenete sempre presente che PHP restituisce un errore (Invalid argument) se ciò che viene passato ai due costrutti non è un array. Potete effettuare una verifica con la funzione
is_array()
il cui valore booleano indica se l'argomento passato è un array:
$input = $_POST['input'];
$json_arr = json_decode( $input, true );
if( is_array( $json_arr ) ) {
// loop
}
Abbiamo un input JSON e proviamo a convertirlo in un array. Prima di effettuare un loop dobbiamo verificare che la funzione json_decode()
abbia effettivamente restituito un array.