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对应的值为wangwugetappoint($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对应的值为wangwugetappoint($arr3,1);//数组中元素位数为1的值为18

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

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

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

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

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

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

调用函数并传入实参 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++并发:线程函数传参(一)

一、问题 当创建 std::thread 对象时&#xff0c;传递给线程的函数的所有参数都会被复制或移动到新创建的线程的内存空间中。这是为了确保线程的执行不会依赖于父线程可能销毁的栈上变量&#xff0c;从这个机制上看&#xff0c;这是很合理的。 在新的线程的栈上&#xff0c;这…

通义千问2.5正式发布,能力升级,全面赶超GPT4

简介 在人工智能的大潮中&#xff0c;大模型的竞争愈发激烈。今日&#xff0c;阿里云发布了其最新的通义千问2.5大模型&#xff0c;引起了业界的广泛关注。这款模型不仅在性能上全面赶超了GPT-4&#xff0c;还在多个基准测评中取得了优异的成绩&#xff0c;展现了国产AI技术的…

ARP命令

按照缺省设置&#xff0c;ARP高速缓存中的项目是动态的&#xff0c;每当发送以恶个指定的数据报且高速缓存中不存在当前项目时&#xff0c;ARP便会自动添加该项目。一旦高速缓存的项目被输入&#xff0c;就已经开始走向失效状态。因此&#xff0c;如果ARP高速缓存中的项目很少或…

SPSS之主成分分析

SPSS中主成分分析功能在【分析】--【降维】--【因子分析】中完成&#xff08;在SPSS软件中&#xff0c;主成分分析与因子分析均在【因子分析】模块中完成&#xff09;。 求解主成分通常从分析原始变量的协方差矩阵或相关矩阵着手。 &#xff08;1&#xff09;当变量取值的度量…

【Elasticsearch<五>末篇 ✈️✈️】结合 kibana 实现索引中 IP 地址分布地图可视化

目录 &#x1f44b;前言 &#x1f440;一、ES 地理位置基本了解 &#x1f331;二、IP 地址地图可视化 2.1 创建预处理通道 2.2 创建索引库 2.3 插入一条数据 2.4 观察写入后的数据 2.5 可视化展示 &#x1f604;三、章末 &#x1f44b;前言 继前面了解 Elasticsearch 的安…

酷企秀场景elementUi plus可视化diy

无论网络公司还是政务企业需求的所需的一单可回本的 独立部署集三大功能&#xff1a;电子画册、VR全景、地图秀等功能都可以可视化在线设计 后续免费增加 自定义表单、抽奖活动功能。 源码交付&#xff0c;独立私有化部署&#xff0c;无限多开&#xff0c;可视化设计&#x…

【linux】主分区,扩展分区,逻辑分区,动态分区,引导分区,标准分区

目录 主分区&#xff0c;扩展分区&#xff0c;逻辑分区 主分区和引导分区 主分区&#xff0c;扩展分区&#xff0c;逻辑分区&#xff08;标准分区&#xff09; 硬盘一般划分为一个“主分区”和“扩展分区”&#xff0c;然后在扩展分区上再分成数个逻辑分区。 磁盘主分区扩展…

Redis-2 双写一致性

双写一致性 一.什么是双写一致性&#xff1f; 在数据库中的数据修改后&#xff0c;也要修改缓存中的数据&#xff0c;保证数据库与缓存中保存的数据一致。 二.如何保证双写一致性&#xff1f; 回答该问题一定要结合自己的项目&#xff0c;说明自己的项目是必须强一致性还是…

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

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

请介绍下重要的CUDA API

CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由NVIDIA推出的通用并行计算架构&#xff0c;它提供了一系列API供开发者调用&#xff0c;以充分利用GPU进行高性能计算。以下是一些重要的CUDA API&#xff1a; CUDA Runtime API&#xff1a; 这是CUDA编程…

Ci24R1 (SOP8)2.4GHz无线收发一体、双向系统的智能家居芯片

Ci24R1 &#xff08;SOP8&#xff09;工作范围在2.4GHzISM频段&#xff0c;专为低系统应用成本的无线场合设计&#xff0c;集成嵌入式ARQ基带协议引擎的无线收发器芯片。它的工作频率范围为2400MHz-2525MHz&#xff0c;共有126个1MHz带宽的信道。 Ci24R1 &#xff08;SOP8&…

IPFoxy Tips:什么是静态住宅IP?静态ISP代理指南

静态住宅代理&#xff08;也称为静态ISP代理&#xff09;是最流行的代理类型之一。它们也是隐藏您的身份并保持在线匿名的最佳方法之一。您为什么要使用住宅代理而不是仅使用常规代理服务&#xff1f;下面我具体分享。 一、什么是静态住宅代理&#xff1f; 首先&#xff0c;我…

无监督式学习

1.是什么&#xff1f; 无监督式学习与监督式学习**最大的区别就是&#xff1a;**没有事先给定的训练实例&#xff0c;它是自动对输入的示例进行分类或者分群&#xff1b; 优点&#xff1a;不需要标签数据&#xff0c;极大程度上扩大了我们的数据样本&#xff0c;其次不受监督信…

STC8增强型单片机开发day02

逻辑分析仪 什么是逻辑分析仪 逻辑分析仪&#xff08;Logic Analyzer&#xff09;是一种工具&#xff0c;用于分析数字信号&#xff0c;例如控制信号&#xff0c;时钟信号等等。它可以用于调试和验证数字电路、嵌入式系统等等 本人采用的是mini版USB 逻辑分析仪。总共有10个…

刷题《面试经典150题》(第九天)

加油&#xff01; 学习目标&#xff1a;学习内容&#xff1a;学习时间&#xff1a;知识点学习内容&#xff1a;跳跃游戏 II - 力扣&#xff08;LeetCode&#xff09;H 指数 - 力扣&#xff08;LeetCode&#xff09;盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09;矩阵置…

Spring学习笔记

目录 1. Spring有什么优势 1.1 模块化 1.2 轻量级 1.3 方便集成各种优秀框架 1.4 提供了分层开发下的完整技术解决方案 1.5 Java语言编写的开源框架&#xff0c;使用了多种设计模式 2. Spring的第一个程序 2.1 开发环境 2.2 环境搭建 2.3 编码测试 2.4 BeanFactory的UML类图…

pytest教程-42-钩子函数-pytest_runtest_makereport

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest_runtest_teardown钩子函数的使用方法&#xff0c;本小节我们讲解一下pytest_runtest_makereport钩子函数的使用方法。 pytest_runtest_makereport 钩子函数在 pytest 为每个测试生成报…

交易复盘-20240509

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 百合花 (4)|[9:25]|[17717万]|1.93 时代万恒…

多线程学习D10 收尾了应该

线程安全集合类概述 重点介绍java.util.concurrent.* 下的线程安全集合类&#xff0c;可以发现它们有规律&#xff0c;里面包含三类关键词&#xff1a;Blocking、CopyOnWrite、Concurrent Blocking 大部分实现基于锁&#xff0c;并提供用来阻塞的方法 CopyOnWrite 之类容器修改…

代码随想录刷题随记31-贪心5

代码随想录刷题随记31-贪心5 435. 无重叠区间 leetcode链接 按照右边界排序&#xff0c;从左向右记录非交叉区间的个数。 此时问题就是要求非交叉区间的最大个数。 这里记录非交叉区间的个数还是有技巧的&#xff0c;如图&#xff1a; 左边界排序可不可以呢&#xff1f; 也是…