迭代处理数组

news/2024/12/26 3:35:42/文章来源:https://www.cnblogs.com/xueshi/p/18631722

可以使用foreach:
foreach($array as $value){
//处理$value
}
或者获得一个数组的键和值:
foreach($array as $key => $value){
//第二种处理
}
还可以使用另一种技术:
for($key=0,$size =count($array);$key<$size;$key++){
//第三种处理
}
结合1ist()和while使用each()
reset($array);//将内部指针重置为数组起始位置
while(list($key,$value)=each($array)){
//最后一种处理
}

利用foreach,PHP将迭代处理数组的一个副本,而不是数组本身。
使用each()和for时,PHP会迭代处理原来的数组。

如果确实想修改数组,则要直接引用数组:
foreach($items as $item => $cost){
if(!in_stock($item)){
unset($items[$item]);//直接引用数组
}
}
foreach()返回的变量并不是数组中原值的别名:它们是一些副本,所以如果修改这些变量,不会反映到数组中。正是因为这个原因,需要修改$items[$item]而不是$cost。
使用each()时,PHP会跟踪循环中的位置。完成第一次遍历后,要重新开始,可以调用reset()将指针移回到数组起始位置。否则,each()将返回false。
for循环只适用于有连续整数键的数组。除非修改数组的大小,否则如果每次循环时都调用count()重新计算$items的个数,效率会很低,所以我们使用一个$size变量来保存数组的大小。

最后,可以使用array_map()把各个元素交给一个函数来完成处理:
//将所有单词变为小写
$lc= array_map('strtolower',$words);
array_map()的第一个参数是一个函数,用来修改各个元素,第二个参数是要迭代处理的数组。

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

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

相关文章

淘一个电池电量代码

`<div style="margin-top: 20px;">当前电量:<el-input-numberv-model="elecVal":min="0":max="100":step="5":precision="2"controls-position="right"style="width: 120px;">&…

【unity】学习制作类银河恶魔城游戏-3-

解决黏墙 当人物贴在墙上且不松开方向键时,人物会黏住一动不动,无法从空中落下创建一个2d材料,命名为光滑的材料应用给player设置摩檫力为0冲刺功能(计时器和增量时间)Update函数每帧执行一次,经历一帧所耗费的时间就是增量时间deltatime 通过计算每一帧之间的时间增量,…

java大作业7-8+期末总结

一、前言 第七次大作业: 还是家居电路模拟程序,在上一次的基础上迭代了互斥开关,互斥开关有三个引脚,且每个引脚为了不被短路,存在阻值,还有一个就是迭代了窗帘,根据室内的灯光来进行调节的,所以这次还需要多一个计算总光照的过程。总体上还是跟以前一样把总电路看成串…

Typora

测试Typora上传

案例:请假条管理系统2024-11-22

整体框架pojo:Student:点击查看代码 package com.QixunQiu.pojo;public class Student {int id ;String StudentId ;String StudentName ;String StudentSex ;String StudentLeave ;String StudentCollege ;String StudentSpecialty ;String StudentClass ;String Studen…

梦幻神器-起-魔犀角之怒-1星

1-该任务需要提前准备5个佛光舍利子或者九转回魂丹,也可以混搭,凑够5个即可。 2-号一般的推荐带5个血供慢慢打,底子好、须弥强的可以带5个须弥速推。 3-前面的战斗比较简单,没有什么技巧 4-在打boss之前,需要我们找小食铁兽。 5-在大唐(60,83)捡起小袋子、(99,54)拾起残存…

Elasticsearch filter context 的使用原理

ES querycache 加速匹配的方法 前言 ES 进行信息检索的时候,boolean 查询组合条件有 must/must_not/should/filter 四个操作。其中 must 和 filter 的用途都是用于过滤必要符合的条件,但是 filter 在查询过程中不算分并且可以进行缓存,这样逻辑简单又可以加速的查询方式经常…

[转]教大家如何选择正确的Google Play服务

前言全局说明来源:https://blog.csdn.net/luo2757227663/article/details/104514864一、说明 1.1 环境: android二、 想必不少刚入坑的小伙伴就经历了各种play服务的问题 而实际上,这些问题大部分来自于未能正确找到play服务的版本 好啦,我们通过这一贴来教大家如何快速找到…

hot100-一刷-12栈(共5道题)

20. 有效的括号 题目链接 题目描述代码实现 分析: 代码: class Solution {public boolean isValid(String s) {int n = s.length();if(n % 2 == 1) return false;Deque<Character> st = new LinkedList<>();for (char c : s.toCharArray()){if(c == () {st.push(…

模型训练中性能指标

在机器学习和深度学习的模型训练过程中,评估模型性能是至关重要的一环。不同的任务和应用场景可能会采用不同的评估指标,常见的包括 准确率(Accuracy)、精确率(Precision)、召回率(Recall)和 均值平均精度(mAP)。本文将介绍这些评估指标的定义、计算方法及其在实际中…

ThreeJs-083D动画系统详解

一.动画原理和应用 three的动画大概就是通过不同时间的关键帧来实现 加载一个手机模型在这个对象里面,注意后期都是直接通过可视化软件Blender编辑好关键帧就能实现动画,这也是个已经编辑好的动画模型,在这个对象里面有一个animations就是动画集,也就是这个物体可以有很多个…

day1——伙伴匹配学习笔记

了解了一些Java8特性lambda语法 (parameters) -> expression (parameters) -> { statements; }相当于是函数的另一种写法,更优雅。stream()用法以及和parallelStream()的一些对比 详见博客 java8新特性-流-stream()和parallelStream() 求求你们了,别再乱用 parallelStr…