数组的创建
【6-1】显式创建数组
<?php
$exampleArray = array(0 => "item1", 1 => "item2", 2 => "item3");
echo $exampleArray[0] . "";
echo $exampleArray[1] . "";
echo $exampleArray[2] . "";
【6-2】创建多维数组
<?php
$Array = array(
"color" => array("红", "蓝", "白"),
"number" => array("1", "2", "3", "4", "5", "6"),
);
echo $Array["color"][2] . "<br/>";
print_r($Array);
数组的遍历
【6-3】使用 while 循环访问数组
<?php
$arr=array("item1","item2","item3","item4","item5","item6");
while(list($key,$value)=each($arr)){
echo $key." ";
echo $value."<br/>";
}
【6-4】使用 for 循环访问数组
<?php
$array=range(1,10);
for($i=0;$i<10;$i++){
echo $array[$i];
}
【6-5】使用 foreach 循环访问数组
<?php
$array=array("红色","白色","蓝色");
foreach($array as $arrvalue){
echo "value:$arrvalue";
}
echo "<p>";
foreach($array as $key=>$value){
echo "key:$key;value:$value"."";
}
【6-6】使用 foreach 结构遍历一个二维数组
<?php
$array=array("item1"=>array("a","b","c","d"),"2"=>array("A","B","C","D"),array("1","2","3","4"));
foreach($array as $key=>$arrvalue){
echo "$key:\t";
foreach($arrvalue as $value){
echo "$value\t";
}
echo "<br/>";
}
数组的排序
【6-7】使用 while 循环访问数组
<?php
$array1=array("a"=>5,"x"=>3,5=>7,"c"=>1);
$array2=array(2=>"c",4=>"a",1=>"b");
if(sort($array1))
print_r($array1);
else
echo "排序\$array1 失败!";
echo "<p>";
if(sort($array2))
print_r($array2);
else
echo "排序\$array2 失败!";
【6-8】多维数组排序
array_multisort( arg,$array2……),其中第一个参数必须是一个 数组,接下来每个参数可以是数组或固定含义的标志。当函数的参数是一个数组列表时,函数首先对数组列表中的第一个数组进行排序,下一个数组中值得顺序按照对应的第一个数组的值的顺序排列。
<?php
$xh = array("01", "02", "03");
$xm = array("张三", "李四", "王五");
$cj = array("69", "82", "45");
array_multisort($cj, SORT_DESC, $xh, $xm);
print_r($xh);
echo "<br/>";
print_r($xm);
echo "<br/>";
print_r($cj);
数组的查找
【6-9】利用array_search()函数进行查找
如果查找成功,则返回该值所在的键名,否则返回 false,如果要查找的值不止一次的出现,则返回第一个匹配的键名。第三个参数可以为 true 或 false,如果为 true 则比较二者是否全等。
<?php
$arr = array(15, "a", 30, 60, 30, "b", "C");
echo "15:" . array_search(15, $arr) . "<br/>";
echo "30:" . array_search("30", $arr, true) . "<br/>";
echo "60:" . array_search("60", $arr) . "<br/>";
echo "30:" . array_search(30, $arr) . "<br/>";
echo "c:" . array_search("c", $arr) . "<br/>";
echo "C:" . array_search("C", $arr) . "<nbr/>";
数组的拆分
【6-10】array_splice()函数的用法
array_splice($array,$offset,$length),其中$offset 为获取子集的开始位置,如果为负则将从距离数组末尾该值指定的数值量开始;$length 为获取子集的长度,如果为负,则将 距离数组末尾该值指定的数值量终止,如果没有设置$length 参数,则将从开始位置一直取 到数组的末尾。
<?php
$arr = array(4, 3, 6, 48, 65, 45, 34, 86);
$arr1 = array_splice($arr, 1);
print_r($arr1);
$arr2 = array_splice($arr, 1, 2);
print_r($arr2);
$arr3 = array_splice($arr, -4, 2);
print_r($arr3);
$arr4 = array_splice($arr, 1, -2);
print_r($arr4);
数组的合并
【6-11】array_search()函数的用法
array_search($array1,$array2,……),如果输入的数组中有相同的字符串名,则该键名后 面的值将覆盖前一个值;如果数组包含的键名是数字键名,后面的值将不会覆盖原来的值,而是附加到后面;如果只给了一个数组并且该数组是数字索引的,该键名会以连续的方式重新索引。
<?php
$arr1=array("color"=>"red",1=>2,4);
$arr2=array(1=>"a","color"=>"green",4);
$result=array_merge($arr1,$arr2);
print_r($result);
实战应用
实战应用
【z6-1】 定义并输出数组
将字符串”asp”,”php”,”jsp”赋给名为 languages 的数组,然后分别输出这三个元素
<?php
$languages = array("asp", "php", "jsp");
foreach($languages as $v){
echo $v."<br/>";
}
【z6-2】 显示数组元素
使用 array()函数定义数组$arr,元素值为(新浪、网易、腾讯、雅虎),对应的数组下标分别为(1,2,3,9),并在浏览器上显示出数组元素。
<?php
$arr = array(1 => "新浪", 2 => "网易", 3 => "腾讯", 9 => "雅虎");
print_r($arr);
【z6-3】 显示星期几
定义一个数组,数组元素包括“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”、“星期日”。使用 foreach 语句,网页上显示:
今天是:星期一
今天是:星期二
……
今天是:星期日
<?php
$date = array("星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日");
foreach ($date as $k=>$value) {
echo "今天是:{$value}<br/>";
}
【z6-4】创建并输出二维数组
<?php
$ar2 = array(array(11, 12, 13), array(21, 22, 23), array(31, 32, 33));
foreach ($ar2 as $k1=>$v1) {
foreach ($v1 as $k2=>$v2) {
echo "\$ar2[{$k1}][{$k2}]={$v2} ";
}
echo "<br/>";
}
【z6-5】使用 array_search()函数查找数组的元素值
定义数组$a,其元素值为(a1、b2、c3、 d4),并查找数组中是否含有 b2,则返回其位置;如果不含,则数组“在数组中未发现字符 b2”。
<?php
$word = "b2";
Word($word);
function Word($word)
{
$a = array("a1", "b2", "c3", "d4");
if(array_search($word, $a)){
echo "所查找的元素的数组下标为:".array_search($word, $a);
}else{
echo "在数组中未发现字符 b2";
}
}
【z6-6】对数组进行升序和降序
定义一个数组,值分别为(1,1.2,-2.3,90.25),输出该数组;计算数组个元素的和; 对数组元素按照值的大小分别进行升序和降序排列
<?php
$num = array(1, 1.2, -2.3, 90.25);
echo "<h4>排序前:</h4>";
forArray($num);
echo "<h4>数组所有元素的和:</h4>";
echo "<span style='color:red'>".array_sum($num)."</span><hr/>";
echo "<h4>升序排列后:</h4>";
asort($num);
forArray($num);
echo "<h4>降序排列后:</h4>";
arsort($num);
forArray($num);
function forArray($a)
{
foreach ($a as $k => $v) {
$k++;
echo "第{$k}个数为<span style='color:red'>{$v}</span><br/>";
}
echo "<hr/>";
}
【z6-7】将下列信息存放在一个二维数组中并遍历输出
张三 李四 王五 赵六
86 90 82 85
<?php
$arr = array(array("张三", "李四", "王五", "赵六"), array("86 ", "90 ", "82 ", "85 "));
foreach ($arr as $v1) {
foreach ($v1 as $v2) {
echo $v2 . " ";
}
echo "<br/>";
}