Learning Resources
 

Associative arrays


PHP arrays can contain integer and string keys at the same time as PHP does not distinguish between indexed and associative arrays.

Example - Mixed integer and string keys:


$array = array(
    "foo" => "bar",
    "bar" => "foo",
    100   => -100,
    -100  => 100,
);
var_dump($array);
?>

The above example will output:

array(4) {
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "foo"
  [100]=>
  int(-100)
  [-100]=>
  int(100)
}


To create an associative array


$car = array ("weight"=>"100kg", "year"=>"2004", "price"=>"7000");

?>
 

Alternative code:


$car["weight"] = "100kg";
$car["year"] = "2004";
$car["price"] = "7000";
$car["discount rebate"] = "12";

?>

To display the items in an array, do this:

// display car properties
print($car["price"]."
");

// display all car properties
foreach ($car as $property=>$value) {
print($property . " is " . $value . "
");
}

?>
 

To sort an associative array

asort() - Sorts an associative array by value. Returns nothing.
ksort() - Sorts an associative array by key. Returns nothing.

eg.


$fruittrolley = array ("apple"=>"100", "orange"=>"20", "pear"=>"30");

asort($fruittrolley);

print("After asort:
");

foreach ($fruittrolley as $fruit=>$no) {
print("There are $no ${fruit}s.
");
}

ksort($fruittrolley);

print("After ksort:
");

foreach ($fruittrolley as $fruit=>$no) {
print("There are $no ${fruit}s.
");
}

?>

prints:

After asort:
There are 20 oranges.
There are 30 pears.
There are 100 apples.

After ksort:
There are 100 apples.
There are 20 oranges.
There are 30 pears.