Array numerici ed associativi , unidimensionali e bidimensionali

Ora illustreremo, soprattutto attraverso esempi, quali e come possono essere gli array che possiamo costruire per i nostri scopi.

 

 

 

Ecco un primo esempio di array associativo:

<?php

// questa definizione di array (1)

$a = array( 'color' => 'red',

'taste' => 'sweet',

'shape' => 'round',

'name' => 'apple',

4 // la chiave sarà zero

);

 

// è totalmente equivalente a questa (2)

$a['color'] = 'red';

$a['taste'] = 'sweet';

$a['shape'] = 'round';

$a['name'] = 'apple';

$a[] = 4; // la chiave sarà zero

// un altro esempio (3)

$b[] = 'a';

$b[] = 'b';

$b[] = 'c';

// il risultato sarà come array(0 => 'a' , 1 => 'b' , 2 => 'c'),

// o semplicemente array('a', 'b', 'c')

?>

questi che abbiamo appena mostrato sono array associativi (1) (2) (3) e monodimensionali.

Ora vediamo qualche esempio pratico di come usare la proprietà associativa, e come creare qualche array di tipo particolare

 

<?php

// Array come mappa di proprietà

$map = array( 'version' => 4,

'OS' => 'Linux',

'lang' => 'english',

'short_tags' => true

);

 

// array con chiavi strettamente numeriche.

$array = array( 7,

8,

0,

156,

-10

);

// questo è lo stesso array(0 => 7, 1 => 8, ...)

 

$switching = array( 10, // key = 0

5 => 6,

3 => 7,

'a' => 4,

11, // key = 6 (maximum of integer-indices was 5)

'8' => 2, // key = 8 (integer!)

'02' => 77, // key = '02'

0 => 12 // the value 10 will be overwritten by 12

);

 

// empty array

$empty = array();

?>

 

In questo esempio vediamo creare un vettore di colori ed un esempio di come estrarre i dati dallo array

<?php

$colors = array('red', 'blue', 'green', 'yellow');

 

foreach ($colors as $color) {

echo "Do you like $color?\n";

}

 

/* output:

Do you like red?

Do you like blue?

Do you like green?

Do you like yellow?

*/

?>

 

Bisogna notare che non è possibile modificare i valori all'interno dell' array in modo diretto, occorre realizzare un ciclo per modificarli.

Vediamo l'esempio:

<?php

foreach ($colors as $key => $color) {

// l'istruzione qui sotto non funziona

//$color = strtoupper($color);

 

// questo invece funziona

$colors[$key] = strtoupper($color);

}

print_r($colors);

 

/* output:

Array

(

[0] => RED

[1] => BLUE

[2] => GREEN

[3] => YELLOW

)

*/

?>

Ora vediamo un esempio di un array monodimensionale

<?php

$firstquarter = array(1 => 'January', 'February', 'March');

print_r($firstquarter);

 

/* output:

Array

(

[1] => 'January'

[2] => 'February'

[3] => 'March'

)

*/

?>

Ora creiamo un array multi dimensionale

<?php

$fruits = array ( "fruits" => array ( "a" => "orange",

"b" => "banana",

"c" => "apple"

),

"numbers" => array ( 1,

2,

3,

4,

5,

6,

),

"holes" => array ( "first",

5 => "second",

"third"

)

);

 

// alcuni esempi di indirizzamento dei valori nell' array ora creato

echo $fruits["holes"][5]; // scrive "second"

echo $fruits["fruits"]["a"]; // scrive "orange"

unset($fruits["holes"][0]); // elimina "first"

 

// Creiamo un nuovo array multidimensionale

$juices["apple"]["green"] = "good";

?>