1、数字索引数组
1.1、数字索引数组的初始化
要创建一个数组,可以使用array(),如下所示:
$products = array('Tires', 'Oil', 'Spark Plugs');
如果需要按升序排列的数字保存在一个数组中,可以使用range()函数自动创建这个数组。如下创建一个1~10的数字数组:
$numbers = range(1, 10);
range()函数具有第三个可选参数,允许设定值之间的步幅。这个函数同时也可以对字符进行操作。
1.2、访问数组的内容
1.3、使用循环访问数组
由于数组使用有序的数字作为索引,所以使用一个for循环就可以很容易显示数组的内容:
for($i=0; $i<3; $i++)
{
echo $products[$i];
}
也可以使用foreach循环,这个循环是专门为数组设计的,如下所示:
foreach($products as $current)
{
echo $current." ";
}
2、使用不同索引的数组
2.1、初始化关联数组
如下所示的代码可以创建一个以产品名称作为关键字、以价格作为值的关联数组:
$prices = array('Tires'=>100, 'Oil'=>10, 'Spark Plugs'=>4);
2.2、访问数组元素
同样,可以使用变量名称和关键字访问数组的内容。
2.3、使用循环语句
因为关联数组的索引不是数字,因此无法在for循环语句中使用一个简单的计数器对数组进行操作。但是可以使用foreach()循环或list()和each()结构。
当使用foreach()循环语句对关联数组进行操作时,foreach循环具有不同的结构。可以在前面的例子中使用这个循环语句,也可以按如下方式使用关键字:
foreach($prices as $key => $value)
{
echo $key . " - " . $value. "<br />";
}
如下所示的代码将使用each()结构打印$prices数组的内容:
while($element = each($prices))
{
echo $element['key'];
echo "-";
echo $element['value'];
echo "<br />";
}
其中each()函数将返回数组的当前元素,并将下一个元素作为当前元素。
另外,还有一中更高级和常见的方式来完成相同的操作。函数list()可以用来将一个数组分解为一系列的值。如下所示:
while(list($product, $price) = each($prices))
{
echo "$product - $price<br />";
}
3、数组排序
3.1、使用sort()函数
按照字母或者数字的升序进行排序。注意该函数是区分大小写的。
3.2、使用asort()函数和ksort()函数对关联数组排序
函数asort()根据数组的每个元素值进行排序。如果是要按照关键字排序而不是按值排序,就可以使用ksort()函数。
3.3、反向排序
实现反向排序的函数是rsort()、arsort()和krsort()。