There are more than 30 new array-related functions in PHP4.0. Many of these common functions allow you to check whether there are specific objects in a given array, count array elements, add or delete elements, or sort elements.
If you have a large array and all you have to do is find out a given value that exists, you can use in_array() to return true or false. The following code will output "Not found in this array" - because you will look 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 and turn it to "Mary", you will get the message "You've found it!" - because "Mary" is part of $namesArray.
If you want 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, whether at the beginning or end of an already existing array. You can also use functions to create a new array containing two or more array elements. When merged, each array will be arranged in the order it needs to be. If your array already has internal sorting, you need to reorder the new merge 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 the original array */
array_push($fruitArray, "grape", "pineapple", "tomato");
/* List each element by its key value*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>
This will display:
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 elements to the beginning of an array. The difference is just the function name: array_unshift() instead of array_push().
<? /* Create original array */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* Add to the original array */
array_unshift($fruitArray, "grape", "pineapple", "tomato");
/* List each element by its key value*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>
This will display:
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");
/* Merge into an array */
$goodfoodArray = array_merge($fruitArray, $vegArray);
/* List each element by its key value*/
while (list($key,$value) = each($goodfoodArray)) {
echo "$key : $value<br>";
}
?>
This will display:
0 : apple
1 : orange
2 : banana
3 : kiwi
4 : pear
5 : carrot
6 : green beans
7 : asparagus
8 : artichoke
9 : corn
Now that the array has been added and merged, let’s practice deleting element functions. You can use the function array_pop() to delete an element from the end of an array. If you use the function array_shift(), delete an element from the beginning of an array. And actually when you delete an element from an array, this element is still available to you - when you pop or shift the element from an already existing array.
Use the array_pop() function to delete a value from the end of the array:
<?
/* Create an array*/
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* A value pops up at the end */
$popped = array_pop($fruitArray);
/* List the new array contents, and the pop-up value*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
echo "<br>and finally, in $popped: $popped";
?>
This will display:
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");
/* Move 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<br>";
}
echo "<br>and finally, in $shifted: $shifted";
?>
This will display:
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 will demonstrate the 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 start to finish */
/* List each element by its key value*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>
This will display:
0 : apple
1 : banana
2 : kiwi
3 : orange
4 : pear
If you have a large array and all you have to do is find out a given value that exists, you can use in_array() to return true or false. The following code will output "Not found in this array" - because you will look 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 and turn it to "Mary", you will get the message "You've found it!" - because "Mary" is part of $namesArray.
If you want 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, whether at the beginning or end of an already existing array. You can also use functions to create a new array containing two or more array elements. When merged, each array will be arranged in the order it needs to be. If your array already has internal sorting, you need to reorder the new merge 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 the original array */
array_push($fruitArray, "grape", "pineapple", "tomato");
/* List each element by its key value*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>
This will display:
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 elements to the beginning of an array. The difference is just the function name: array_unshift() instead of array_push().
<? /* Create original array */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* Add to the original array */
array_unshift($fruitArray, "grape", "pineapple", "tomato");
/* List each element by its key value*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>
This will display:
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");
/* Merge into an array */
$goodfoodArray = array_merge($fruitArray, $vegArray);
/* List each element by its key value*/
while (list($key,$value) = each($goodfoodArray)) {
echo "$key : $value<br>";
}
?>
This will display:
0 : apple
1 : orange
2 : banana
3 : kiwi
4 : pear
5 : carrot
6 : green beans
7 : asparagus
8 : artichoke
9 : corn
Now that the array has been added and merged, let’s practice deleting element functions. You can use the function array_pop() to delete an element from the end of an array. If you use the function array_shift(), delete an element from the beginning of an array. And actually when you delete an element from an array, this element is still available to you - when you pop or shift the element from an already existing array.
Use the array_pop() function to delete a value from the end of the array:
<?
/* Create an array*/
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* A value pops up at the end */
$popped = array_pop($fruitArray);
/* List the new array contents, and the pop-up value*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
echo "<br>and finally, in $popped: $popped";
?>
This will display:
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");
/* Move 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<br>";
}
echo "<br>and finally, in $shifted: $shifted";
?>
This will display:
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 will demonstrate the 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 start to finish */
/* List each element by its key value*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>
This will display:
0 : apple
1 : banana
2 : kiwi
3 : orange
4 : pear