php foreach遍历
foreach($facility_list['data'] as $facility){
//处理语句
}
第一种格式遍历给定的 array_expression_r_r 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键值也会在每次循环中被赋给变量 $key。
注: 当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。
注: 此外注意 foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此即使有 each() 的构造,原数组指针也没有变,数组单元的值也不受影响。
注: foreach 不支持用“@”来禁止错误信息的能力。
假设请求过来的数据格式:
$facility_list变量值为:
array(1) { ["data"]=> array(3) { [0]=> array(4) { ["facility_id"]=> string(1) "1" ["facility_name"]=> string(9) "嘉兴仓" ["schedule_mode"]=> string(29) "manual_schedule_auto_shipping" ["facility_type"]=> string(1) "1" } [1]=> array(4) { ["facility_id"]=> string(1) "2" ["facility_name"]=> string(9) "广州仓" ["schedule_mode"]=> string(29) "manual_schedule_auto_shipping" ["facility_type"]=> string(1) "1" } } }
这里是一个数组array(1),所以我们需要获取里面的数据,需要去这个数组中data指向的值,
$facility_list['data']变量值为:
array(3) { [0]=> array(4) { ["facility_id"]=> string(1) "1" ["facility_name"]=> string(9) "嘉兴仓" ["schedule_mode"]=> string(29) "manual_schedule_auto_shipping" ["facility_type"]=> string(1) "1" } [1]=> array(4) { ["facility_id"]=> string(1) "2" ["facility_name"]=> string(9) "广州仓" ["schedule_mode"]=> string(29) "manual_schedule_auto_shipping" ["facility_type"]=> string(1) "1" } }
通过这个语句获取到如下数组,相当于从外部数组进入了内部数组中,数组中包含数组,对内部数组在对每个值进行遍历,例如:
$facility['facility_id']变量值为:
string(1) "1"
例子:
$facility_list = $this->common->getFacilityList();
$facility_id = $this->getInput('facility_id');
if (isset($facility_id)) {
$cond['facility_id'] = $facility_id;
foreach($facility_list['data'] as $facility){
if($facility['facility_id']==$facility_id){
$cond['facility_type']=$facility['facility_type'];
}
}
} else {
$cond['facility_id'] = $facility_list['data'][0]['facility_id'];
$cond['facility_type'] = $facility_list['data'][0]['facility_type'];
}
php foreach遍历的更多相关文章
- 用<forEach>遍历list集合时,提示我找不到对象的属性
<c:forEach items="${list}" var="item"> <tr> <td>${item.UserId} ...
- Foreach遍历
前天在项目中遇到一个问题,foreach遍历过程中修改responses中的对象,其中responses的类型:IEnumerable<Order>,代码如下: foreach (Orde ...
- 使用yield关键字让自定义集合实现foreach遍历
一般来说当我们创建自定义集合的时候为了让其能支持foreach遍历,就只能让其实现IEnumerable接口(可能还要实现IEnumerator接口) 但是我们也可以通过使用yield关键字构建的迭代 ...
- js中三个对数组操作的函数 indexOf()方法 filter筛选 forEach遍历 map遍历
indexOf()方法 indexOf()方法返回在该数组中第一个找到的元素位置,如果它不存在则返回-1. 不使用indexOf时 var arr = ['apple','orange','pea ...
- mybatis map foreach遍历
mybatis map foreach遍历 转至http://www.cnblogs.com/yg_zhang/p/4314602.html mybatis 遍历map实例 map 数据如下 Map& ...
- foreach遍历遇到的一个细节问题
1.Invalid argument supplied for foreach()警告错误解决办法:foreach遍历之前添加is_array()判断
- IEnumerable 接口 实现foreach 遍历 实例
额 为啥写着东西? 有次面试去,因为用到的时候特别少 所以没记住, 这个单词 怎么写! 经典的面试题: 能用foreach遍历访问的对象的要求? 答: 该类实现IEnumetable 接口 声明 ...
- 实现Foreach遍历
实现Foreach遍历的集合类,需要实现IEnumerable接口,泛型集合则需要实现IEnumerable<T>接口 using System; using System.Collect ...
- foreach遍历扩展(二)
一.前言 假设存在一个数组,其遍历模式是根据索引进行遍历的:又假设存在一个HashTable,其遍历模式是根据键值进行遍历的:无论哪种集合,如果它们的遍历没有一个共同的接口,那么在客户端进行调用的时候 ...
- c#--foreach遍历的用法与split的用法
一. foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成.in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素. 该循环 ...
随机推荐
- MyBatis框架流程
Hibernate与Mybatis的本质区别和应用场景 Hibernate:标准的ORM框架,不需要写SQL语句,但是优化和修改SQL语句比较难. 应用于需求变化固定的中小型的项目,例如后台管理系统. ...
- miniui中表单验证规则总结
页面链接: http://www.miniui.com/demo/#src=form/rules.html 页面效果图: 页面代码: <!DOCTYPE html PUBLIC "-/ ...
- 读《3M 利率分析新框架》
目录 读<3M 利率分析新框架> 前言 传统的利率研究框架 3M 利率研究新框架 Macro Monetary Macro Prudence 总结 参考文献 <3M 利率分析新框架& ...
- vue.js学习笔记(一)——vue-cli项目的目录结构
vue.js是一套构建用户界面的渐进式框架.vue采用自底向上增量开发的设计.vue的核心库只关心视图层,非常容易学习,非常容易与其它库和已有项目整合.vue完全有能力驱动采用单文件组件和vue生态系 ...
- nginx(四)-负载均衡
负载均衡,我认为是nginx最重要的功能了.那什么是负载均衡呢. 比如有一个服务,它访问量很大,一台机器吃不消了,怎么办,我们准备两台.分一部分的请求出来.现在有两台服务器提供这个服务.我们访问其中一 ...
- SELinux 引起的 Docker 启动失败
问题描述 Linux OS 版本 CentOS Linux release 7.2.1511 (Core) 启动Docker service docker start 启动失败信息 原因分析 Erro ...
- maven相关的说明以及通过它来创建项目
1.什么是maven maven的本质是一个项目构建工具 2.maven的作用 那么作为一个项目构建工具我们又为什么要使用它以及好处呢 首先项目构建的本质是什么:项目代码从源代码到程序文件的过程是代码 ...
- Celery 分布式任务队列快速入门 以及在Django中动态添加定时任务
Celery 分布式任务队列快速入门 以及在Django中动态添加定时任务 转自 金角大王 http://www.cnblogs.com/alex3714/articles/6351797.html ...
- BottomSheetDialogFragment 如何设置高度和禁止滑动
主要是获取dialog 的BottomSheetBehavior 然后设置 setPeekHeight 和 BottomSheetCallback. private BottomSheetBehavi ...
- SpringBoot1.5.2安装配置--1.5.2版本问题
简述下java环境 1.安装jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...