There are more than 30 new array-related functions in PHP4.0. Many of these general functions allow you to check whether a specific object exists in a given array, count array elements, add or remove elements, or sort elements.
If you have a large array and all you want to accomplish is to find the presence of a given value, you can use in_array() to return true or false. The following code will output "Not found in this array" - because you will be looking for an "Alber" that does not exist in $namesArray. $namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");
$lookingFor = "Albert";
if (in_array($lookingFor, $namesArray)) {
echo "You've found it!";
} else {
echo "Not found in this array!";
}
?>
If you change the value of $lookingFor to "Mary", you will get the message "You've found it!" - because "Mary" is part of $namesArray.
If you wish to count array elements, you can use the count() function:
$namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");
$count = count($namesArray); ?>
The $count value will be 7.
You can add elements to any array, either at the beginning or end of an existing array. You can also use functions to create a new array containing two or more array elements. When merged each array will be in the desired order. If your array already has internal sorting, you will need to reorder the new merged array.
Let's start by adding elements to the end of an existing array, using the function array_push():
/* Create original array */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* Add to original array */
array_push($fruitArray, "grape", "pineapple", "tomato");
/* List each element by its key value */
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value
";
}
?>
This will show:
0: apple
1 : orange
2: banana
3:kiwi
4: pear
5: grape
6: pineapple
7: tomato
The code is very similar when you need to add an element to the beginning of an array. The only difference is the function name: array_unshift() instead of array_push().
/* Create original array */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* Add to original array */
array_unshift($fruitArray, "grape", "pineapple", "tomato");
/* List each element by its key value */
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value
";
}
?>
This will show:
0: grape
1: pineapple
2: tomato
3: apple
4: orange
5: banana
6:kiwi
7: pear
The function array_merge() merges two or more arrays.
/* Create original array */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* Create a second array */
$vegArray = array("carrot", "green beans", "asparagus", "artichoke", "corn");
/* Combine into an array */
$goodfoodArray = array_merge($fruitArray, $vegArray);
/* List each element by its key value */
while (list($key,$value) = each($goodfoodArray)) {
echo "$key : $value
";
}
?>
This will show:
0: apple
1 : orange
2: banana
3:kiwi
4: pear
5: carrot
6: green beans
7: asparagus
8:artichoke
9: corn
Now that you have added elements and merged arrays, let's practice the delete element function. You can use the function array_pop() to remove an element from the end of an array. If the function array_shift() is used, an element is deleted from the beginning of an array. In fact, when you delete an element from an array, the element is still available to you - when you pop or shift an element from an existing array.
Use the array_pop() function to remove a value from the end of an array:
/*Create an array*/
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* Pop a value at the end */
$popped = array_pop($fruitArray);
/* List the contents of the new array and the popped values*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value
";
}
echo "
and finally, in $popped: $popped";
?>
This will show:
0: apple
1 : orange
2: banana
3:kiwi
and finally, in $popped: pear
Next, delete an element from the end of an array: ? ? ? ? ? ? ? ? ? ? ?
Next, delete a value from the end of the array:
/*Create an array*/
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* Remove a value from the head of the array */
$shifted = array_shift($fruitArray);
/* List the contents of the new array and the removed values*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value
";
}
echo "
and finally, in $shifted: $shifted";
?>
This will show:
0 : orange
1: banana
2:kiwi
3: pear
and finally, in $shifted: apple
There are many functions that can help you sort array elements. But I'll demonstrate basic sorting to help you understand the process:
/* Create original array */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* Sort */
sort($fruitArray);
/* Reset it to correctly display the array from beginning to end */
/* List each element by its key value */
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value
";
}
?>
This will show:
0: apple
1: banana
2:kiwi
3 : orange
4: pear