PHP 4.0中新添加了30个与组数有关的函数,其中一些常见的函数可以判断一个数组中是否包含某个元素,对一个数组中的元素进行计数,添加或删除数组中的元素或者对数组中的元素进行排序。
\n
如果有一个很大的数组,而你需要找出其中是否包含一个特定的元素,就可以使用in_array()。下面的例子将显示“Not found in this array”,因为在一个名字为namesArray的数组中查找Albert,而在namesArray数组中不存在这样一个元素。
\n
<? 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!”;
}
?>
\n
如果把lookingFor的值改为Mary,就会得到“You’ve found it!”的信息,因为Mary是namesArray数组中的一个元素。
\n
如果要对一个数组中的元素个数进行计数,只要简单地使用count()函数即可:
\n
<? namesArray = array(“Joe”, “Jane”, “Bob”, “Mary”, “Paul”, “Eddie”, “John”);
count = count(namesArray); ?>
\n
返回的count的值为7。
\n
可以在一个数组的开头或结尾处添加元素,还可以使用array_merge()来建立一个包含二个或更多数组中元素的新数组,合并时,元素的顺序会按指定的顺序排列,如果原来的数组是被排过序的,在合并后需要对它重新排序。
\n
我们可以首先利用array_push()在数组的结尾处添加一个元素:
\n
<? /* 建立一个数组 */
fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”);
/* 向数组中添加元素 */
array_push(fruitArray, “grape”, “pineapple”, “tomato”);
/*显示每个元素及其序号*/
while (list(key,value) = each(fruitArray)) {
echo “key : value<br>”;
}
?>
\n
运行上面的程序将得到下面的结果:
\n
0 : apple
1 : orange
2 : banana
3 : kiwi
4 : pear
5 : grape
6 : pineapple
7 : tomato
\n
如果需要在数组的开头添加元素,其代码与上面的代码差不多,唯一的不同之处是需要用array_unshift()代替array_push()。
\n
<?
/* 建立一个数组*/
fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”);
/* 向数组中添加元素*/
array_unshift(fruitArray, “grape”, “pineapple”, “tomato”);
/* 显示每个元素及其序号*/
while (list(key,value) = each(fruitArray)) {
echo “key : value<br>”;
}
?>
\n
运行上面的程序将得到下面的结果:
\n
0 : grape
1 : pineapple
2 : tomato
3 : apple
4 : orange
5 : banana
6 : kiwi
7 : pear
\n
array_merge()函数可以把二个或更多的数组合并为一个数组。
\n
<? /*建立第一个数组*/
fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”);
/*/建立第二个数组*/
vegArray = array(“carrot”, “green beans”, “asparagus”, “artichoke”, “corn”);
/*把这二个数组合并为一个数组*/
goodfoodArray = array_merge(fruitArray, vegArray);
/* 显示每个元素及其序号*/
while (list(key,value) = each(goodfoodArray)) {
echo “key : value<br>”;
}
?>
\n
运行上面的脚本将得到下面的结果:
\n
0 : apple
1 : orange
2 : banana
3 : kiwi
4 : pear
5 : carrot
6 : green beans
7 : asparagus
8 : artichoke
9 : corn
\n
现在我们已经掌握了如何添加元素和合并数组,我们再来看看如何从一个数组中删除元素。从一个数组的末尾删除一个元素可以使用array_pop()函数,使用array_shift()函数可以从一个数组的开头删除一个元素。尽管使用array_pop()或 array_shift()从数组中删除了一个元素,你还可以把这个元素当作一个变量来使用。
\n
使用array_pop()从一个数组的末尾删除一个元素:
<?
/*建立一个数组*/
fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”);
/* 从数组的末尾删除一个元素*/
popped = array_pop(fruitArray);
/* 显示删除后数组的内容和你删除的元素*/
while (list(key,value) = each(fruitArray)) {
echo “key : value<br>”;
}
echo “<br>and finally, in popped: popped”;
?>
\n
运行上面的脚本会得到下面的结果:
\n
0 : apple
1 : orange
2 : banana
3 : kiwi
and finally, in popped: pear
\n
我们再来讨论一个从一个数组的末尾删除元素的例子:
<?
/* 建立一个数组*/
fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”);
/*从一个数组的开始删除一个元素*/
shifted = array_shift(fruitArray);
/* 显示删除后数组的内容和你删除的元素*/
while (list(key,value) = each(fruitArray)) {
echo “key : value<br>”;
}
echo “<br>and finally, in shifted: shifted”;
?>
\n
运行上述脚本会得到如下的显示结果:
\n
0 : orange
1 : banana
2 : kiwi
3 : pear
and finally, in shifted: apple
\n
另外还有几个函数可以对数组中的元素进行排序,但在这里我们将只简要介绍基本的排序函数,说明排序的过程:
\n
<? /*建立一个数组*/
fruitArray = array(“apple”, “orange”, “banana”, “kiwi”, “pear”);
/* 对数组进行排序*/
sort(fruitArray);
/*显示每个元素及其序号*/
while (list(key,value) = each(fruitArray)) {
echo “key : value<br>”;
}
?>
\n
运行上述的脚本会得到如下的显示结果:
0 : apple
1 : banana
2 : kiwi
3 : orange
4 : pear