PHP关联数组[区别,组成,取值,遍历,函数]

关联数组

相较于数值数组,关联数组的索引可以为字符串和数字,关联数组元素也可称为键值对,索引为键,值为值。

源码

<?php    
    echo "<hr>"; //水平线标签
    //关联数组
    $arr3 = array(); //创建空的数组
    //关联数组添加元素
    //$arr3["元素的键"] = "元素的值"
    $arr3["name"] = "zhangsan";
    $arr3["age"] = 18 ;
    $arr3[2] = 'num';
    //也可以对已有元素进行修改
    $arr3["name"] = "wangwu";
    //通过数组内元素的键,输出对应元素的值的值
    echo $arr3["name"] . "<br>";
    //输出数组类型及具体元素
    var_dump($arr3);
    /* 
    array(2) { ["name"]=> string(6) "wangwu" ["age"]=> int(18) [2]=> string(3) "num" }
    该变量是数组类型,有两个元素组成
    键名为name的元素,值为字符串类型,由六个字符组成 wangwu
    键名为age的元素,值为整数类型,具体为18
    键名为2的元素,值为字符串类型,由3个字符组成 num
    */
    //通过foreach遍历数组元素的 键值对
    foreach($arr3 as $key => $value ){
        echo "<br>" . '键为' . $key . '值为' . $value;
    }
    /*
        foreach循环遍历中$arr3为指定数组名 
        as关键字将数组中每个元素分配给两个变量
        其中$key为数组的键,$value为数组的值。也可自定义变量名如$k => $v
        {花括号内为循环迭代过程中执行的代码块}
        键为name值为wangwu
        键为age值为18
        键为2值为num
    */

    //调用函数输出数组中指定索引的值
    function getappoint($arr,$oint){
        //设置虚参$arr:数组 $oint:指定键
        $n=0; //初始化计数器,记录迭代次数
        foreach($arr as $k => $v){
            if($k == $oint){
                // == 号判断字符串内容是否相等
                echo '<br>' . '键名' . $k . "对应的值为" . $v ;
                // 输出键名对应的值
                break; //判断成功并执行完成后,结束循环,避免不必要的运算
            }elseif($oint == $n){
                echo "<br>" . $n . '为' . $v ;
                break;
            }
            $n++; //计时器自增
        }
    }
    //调用函数
    getappoint($arr3,'name');
    //键名name对应的值为wangwu
    getappoint($arr3,1);
    //数组中元素位数为1的值为18

?>

关联数组的创建

$arr1 = []

$arr1 = array

关联数组的赋值

$arr1['键名'] = '值'

$arr1['name'] = 'zhangsan'

$arr1 = array("键名" = '值',"键名"='值')

$arr1 = array ('name' = "zhangsan" , 'age' = 18 , 2 = 'num')

元素的输出

通过数组内元素的键,输出对应元素的值的值
echo $arr3["name"] . "<br>";

输出数组类型及具体元素

var_dump($arr3); 

array(2) { ["name"]=> string(6) "wangwu" ["age"]=> int(18) [2]=> string(3) "num" }

该变量是数组类型,有两个元素组成

键名为name的元素,值为字符串类型,由六个字符组成 wangwu

键名为age的元素,值为整数类型,具体为18

键名为2的元素,值为字符串类型,由3个字符组成 num
 

循环遍历数组元素并取值

foreach($arr3 as $key => $value ){
        echo "<br>" . '键为' . $key . '值为' . $value;
    }       

foreach循环遍历 数组$arr3 指定数组名         

as关键字将数组中每个元素分配给两个变量        

其中$key为数组的键,$value为数组的值。也可自定义变量名如$k => $v        

{花括号内为循环迭代过程中执行的代码块}        

键为name值为wangwu       

键为age值为18        

键为2值为num
 

调用函数输出数组中指定索引或位数的值

代码块

function getappoint($arr,$oint){
        //设置虚参$arr:数组 $oint:指定键
        $n=0; //初始化计数器,记录迭代次数
        foreach($arr as $k => $v){
            if($k == $oint){
                // == 号判断字符串内容是否相等
                echo '<br>' . '键名' . $k . "对应的值为" . $v ;
                // 输出键名对应的值
                break; //判断成功并执行完成后,结束循环,避免不必要的运算
            }elseif($oint == $n){
                echo "<br>" . $n . '为' . $v ;
                break;
            }
            $n++; //计时器自增
        }
    }
    //调用函数
    getappoint($arr3,'name');
    //键名name对应的值为wangwu
    getappoint($arr3,1);
    //数组中元素位数为1的值为18

创建函数getappoint传入虚参$arr $oint

数值计时器$n初始值为0,用于循环外记录循环迭代次数

foreach函数循环遍历数组$arr,分配元素键名为$k,值为$v 

if判断传入实参与循环内键名是否相等。相等则输出并结束循环。不相等则进入下一个判断。

elseif判断输入数值与循环正在迭代的次数是否相等,相等输出数组内对应位数的值,并结束循环。

不相等则结束判断,执行计时器自增,并进入下一次迭代,直到循环结束为止。
 

调用函数并传入实参 

  • 15
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值