PHP从入门到能用(六)数组

数组的创建

【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( a r r a y 1 , array1, 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} &nbsp;";
    }
    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&nbsp;&nbsp;&nbsp;", "90&nbsp;&nbsp;&nbsp;", "82&nbsp;&nbsp;&nbsp;", "85&nbsp;&nbsp;&nbsp;"));

foreach ($arr as $v1) {
    foreach ($v1 as $v2) {
        echo $v2 . "&nbsp;";
    }
    echo "<br/>";
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41136216/article/details/106298867