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判断输入数值与循环正在迭代的次数是否相等,相等输出数组内对应位数的值,并结束循环。

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

调用函数并传入实参 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/608821.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

内网穿透速度慢

内网穿透速度慢原因及优化策略 在计算机网络应用中&#xff0c;内网穿透是一个常见的需求&#xff0c;它允许外部网络访问位于内部网络&#xff08;如企业局域网或家庭网络&#xff09;中的设备或服务。然而&#xff0c;有时用户在进行内网穿透时会遇到速度慢的问题&#xff0…

【二次元MMORPG游戏开发】任务系统技术拆解

引言 各位同学大家好。在今天的分享当中&#xff0c;我将对任务系统去做一个拆解。也许你见过很多任务系统&#xff0c;但是今天我要分享的是我们经过一个框架迭代以后的任务系统。我会结合客户端的功能演示给大家去讲解。 跟着演示学开发 基本操作 好&#xff0c;首先我们点…

C++ | Leetcode C++题解之第80题删除有序数组中的重复项II

题目&#xff1a; 题解&#xff1a; class Solution { public:int removeDuplicates(vector<int>& nums) {int n nums.size();if (n < 2) {return n;}int slow 2, fast 2;while (fast < n) {if (nums[slow - 2] ! nums[fast]) {nums[slow] nums[fast];slo…

【Linux】项目自动化构建工具make/makefile

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; Linux &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解Linux中项目自动化构建工具make/makefile的相关内容。 如果看到最后…

[windows系统安装/重装系统][step-2]BIOS设置UEFI引导、磁盘分区GPT分区、安装系统[含完整操作拍照图片]

背景 先准备U盘启动盘和系统镜像: [windows系统安装/重装系统][step-1]U盘启动盘制作&#xff0c;微软官方纯净系统镜像下载 前言&#xff08;略长&#xff0c;建议可跳过&#xff09; 我的笔记本升级了CPU升级了内存后出现了一个小问题&#xff0c; 每次启动徽标显示后会…

hyper-v启动centos7虚拟机不能联网

虚拟网卡要和之前虚拟机里面设置的GATEWAY一致。 安装CentOS遇到Error setting up base repository换url 或者换镜像包iso(这个有用&#xff09; 没掌握摸Yu的精髓 好累啊

安全加固

目录 1.文件锁定管理 2.设置用户账户有效期 3.查看并清除命令历史记录 4.设置用户超时登出时间 5.用户切换 6.用户提权 7.禁用重启热键CtrlAltDel 8.设置单用户模式密码 9.调整BIOS引导设置 10.禁止root用户从本地登录&#xff1a; 11.禁止root用户通过ss…

【算法刨析】完全背包

完全背包与01背包的区别 01背包对于一个物品只能选择一次&#xff0c;但是完全背包可以选择任意次&#xff1b; 思路 和01背包类似&#xff0c;01背包我们只需要判断选或不选&#xff0c;完全背包也是如此&#xff0c;不同的是&#xff0c;对于这个物品我们在判断选后在增加一…

【考试100】2023年监理《目标控制(土建)》真题及答案精选

​来源&#xff1a;考试100 一、单项选择题 1、工程建设与使用中&#xff0c;保证人身和环境免受危害&#xff0c;是建设工程质量特性中的&#xff08; &#xff09;要求。A .适用性 B .耐久性 C .安全性 D .可靠性 参考答案&#xff1a;C 解析&#xff1a;安全性&…

2024 全自动ai生成视频MoneyPrinterTurbo源码

只需提供一个视频 主题 或 关键词 &#xff0c;就可以全自动生成视频文案、视频素材、视频字幕、视频背景音乐&#xff0c;然后合成一个高清的短视频。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89208288 更多资源下载&#xff1a;关注我。

AGV与智能仓储系统集成的实践与优化

agv 根据相关研究报告指出&#xff0c;储存、装卸、等待及运送等程序&#xff0c;几乎占了整个生产制程95%的时间&#xff0c;因此导致工厂中的再制品及物料无法有效降低&#xff0c;耗损大量人工等问题&#xff0c;早已是制造业者在经营上的痛点。而智慧工厂中的AGV无人搬运车…

Gitee 码云与Git 交互

优质博文&#xff1a;IT-BLOG-CN 一、进入码云官方网站&#xff0c;注册用户 码云(Gitee.com)是一个类似于GitHub的在线代码托管平台。 码云提供了包括版本控制、代码托管、协作开发和代码分享等功能&#xff0c;基于Git开发&#xff0c;支持代码在线查看、历史版本查看、Fo…

《系统架构设计师教程(第2版)》第10章-软件架构的演化和维护-06-大型网站系统架构演化实例

文章目录 第一阶段&#xff1a;单体架构第二阶段&#xff1a;垂直架构第三阶段&#xff1a;使用缓存改善网站性能第四阶段&#xff1a;使用服务集群改善网站并发处理能力第五阶段&#xff1a;数据库读写分离第六阶段&#xff1a;使用反向代理和CDN加速网站响应第七阶段&#xf…

CommandLineRunner和ApplicationRunner接口实现类中run方法发生异常导致spring程序关闭

今天其他组的一个程序在k8s中启动报错&#xff0c;启动之后立马就关闭了。我去看日志&#xff0c;发现最后面报了一个UnknownHostException异常&#xff0c;感觉是这个原因导致的&#xff0c;然后查看异常栈。定位到一个CommandLineRunner接口实现类&#xff0c;这个实现类里面…

乡村振兴的文化旅游融合:整合乡村文化资源与旅游资源,发展文化旅游产业,提升美丽乡村的文化内涵和旅游吸引力

一、引言 随着城市化进程的加速和人们精神文化需求的日益增长&#xff0c;乡村旅游逐渐成为旅游市场的新热点。乡村振兴战略的提出&#xff0c;为乡村旅游的发展提供了新的契机。在这一背景下&#xff0c;如何整合乡村文化资源与旅游资源&#xff0c;发展文化旅游产业&#xf…

搜维尔科技:光学动作捕捉系统用于城市公共安全智慧感知实验室

用户名称&#xff1a;西安科技大学 主要产品&#xff1a;Optitrack Priime41 光学动作捕捉系统&#xff08;8头&#xff09; 在6米8米的空间内&#xff0c;通过8个Optitrack Priime41光学动作捕捉镜头&#xff0c;对人体动作进行捕捉&#xff0c;得到用户想要的人体三维空间坐…

synchronized关键字和ReentrantLock锁区别

synchronized关键字和ReentrantLock锁是Java中用于同步的两个重要机制&#xff0c;它们在很多方面有所不同&#xff1a; 1. **锁定范围**: synchronized关键字只能在方法的执行过程中提供锁定&#xff0c;而ReentrantLock可以锁定任何对象&#xff0c;包括方法、代码块和对象。…

认养小游戏功能介绍

认养小游戏通常模拟了真实的农业生产过程&#xff0c;让玩家能够在线上体验种植、养殖的乐趣。以下是一些常见的认养小游戏功能介绍&#xff1a; 选择认养的农产品&#xff1a;首先&#xff0c;玩家可以从游戏中提供的多种农产品中选择自己想要认养的种类&#xff0c;如蔬菜、…

容器化Jenkins远程发布java应用(方式二:自定义镜像仓库远程拉取构建)

1.创建maven项目 2.配置git、maven 3.阿里控制台>容器镜像服务>镜像仓库>创建镜像仓库 4.执行shell脚本&#xff08;推送镜像到阿里云镜像仓库&#xff09; 使用到登录阿里云仓库命令 #!/bin/bash # 服务名称 SERVER_NAMEplanetflix-app # 镜像tag IMAGE_TAG1.0.0-SN…

JavaWeb之过滤器(Filter)与监听器(Listener)

前言 过滤器(Filter) 1.什么是过滤器 2.过滤器的语法格式 3.使用场景 3.1.如何防止用户未登录就执行后续操作 3.2.设置编码方式--统一设置编码 3.3.加密解密(密码的加密和解密) 3.4.非法文字筛选 3.5.下载资源的限制 监听器(Listener) 1.什么是监听器 2.监听器分类…
最新文章