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遍历的更多相关文章

  1. 用<forEach>遍历list集合时,提示我找不到对象的属性

    <c:forEach items="${list}" var="item"> <tr> <td>${item.UserId} ...

  2. Foreach遍历

    前天在项目中遇到一个问题,foreach遍历过程中修改responses中的对象,其中responses的类型:IEnumerable<Order>,代码如下: foreach (Orde ...

  3. 使用yield关键字让自定义集合实现foreach遍历

    一般来说当我们创建自定义集合的时候为了让其能支持foreach遍历,就只能让其实现IEnumerable接口(可能还要实现IEnumerator接口) 但是我们也可以通过使用yield关键字构建的迭代 ...

  4. js中三个对数组操作的函数 indexOf()方法 filter筛选 forEach遍历 map遍历

     indexOf()方法  indexOf()方法返回在该数组中第一个找到的元素位置,如果它不存在则返回-1. 不使用indexOf时 var arr = ['apple','orange','pea ...

  5. mybatis map foreach遍历

    mybatis map foreach遍历 转至http://www.cnblogs.com/yg_zhang/p/4314602.html mybatis 遍历map实例 map 数据如下 Map& ...

  6. foreach遍历遇到的一个细节问题

    1.Invalid argument supplied for foreach()警告错误解决办法:foreach遍历之前添加is_array()判断

  7. IEnumerable 接口 实现foreach 遍历 实例

    额 为啥写着东西? 有次面试去,因为用到的时候特别少 所以没记住, 这个单词 怎么写! 经典的面试题: 能用foreach遍历访问的对象的要求? 答:  该类实现IEnumetable 接口   声明 ...

  8. 实现Foreach遍历

    实现Foreach遍历的集合类,需要实现IEnumerable接口,泛型集合则需要实现IEnumerable<T>接口 using System; using System.Collect ...

  9. foreach遍历扩展(二)

    一.前言 假设存在一个数组,其遍历模式是根据索引进行遍历的:又假设存在一个HashTable,其遍历模式是根据键值进行遍历的:无论哪种集合,如果它们的遍历没有一个共同的接口,那么在客户端进行调用的时候 ...

  10. c#--foreach遍历的用法与split的用法

    一. foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成.in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素.      该循环 ...

随机推荐

  1. MyBatis框架流程

    Hibernate与Mybatis的本质区别和应用场景 Hibernate:标准的ORM框架,不需要写SQL语句,但是优化和修改SQL语句比较难. 应用于需求变化固定的中小型的项目,例如后台管理系统. ...

  2. miniui中表单验证规则总结

    页面链接: http://www.miniui.com/demo/#src=form/rules.html 页面效果图: 页面代码: <!DOCTYPE html PUBLIC "-/ ...

  3. 读《3M 利率分析新框架》

    目录 读<3M 利率分析新框架> 前言 传统的利率研究框架 3M 利率研究新框架 Macro Monetary Macro Prudence 总结 参考文献 <3M 利率分析新框架& ...

  4. vue.js学习笔记(一)——vue-cli项目的目录结构

    vue.js是一套构建用户界面的渐进式框架.vue采用自底向上增量开发的设计.vue的核心库只关心视图层,非常容易学习,非常容易与其它库和已有项目整合.vue完全有能力驱动采用单文件组件和vue生态系 ...

  5. nginx(四)-负载均衡

    负载均衡,我认为是nginx最重要的功能了.那什么是负载均衡呢. 比如有一个服务,它访问量很大,一台机器吃不消了,怎么办,我们准备两台.分一部分的请求出来.现在有两台服务器提供这个服务.我们访问其中一 ...

  6. SELinux 引起的 Docker 启动失败

    问题描述 Linux OS 版本 CentOS Linux release 7.2.1511 (Core) 启动Docker service docker start 启动失败信息 原因分析 Erro ...

  7. maven相关的说明以及通过它来创建项目

    1.什么是maven maven的本质是一个项目构建工具 2.maven的作用 那么作为一个项目构建工具我们又为什么要使用它以及好处呢 首先项目构建的本质是什么:项目代码从源代码到程序文件的过程是代码 ...

  8. Celery 分布式任务队列快速入门 以及在Django中动态添加定时任务

    Celery 分布式任务队列快速入门 以及在Django中动态添加定时任务 转自 金角大王 http://www.cnblogs.com/alex3714/articles/6351797.html ...

  9. BottomSheetDialogFragment 如何设置高度和禁止滑动

    主要是获取dialog 的BottomSheetBehavior 然后设置 setPeekHeight 和 BottomSheetCallback. private BottomSheetBehavi ...

  10. SpringBoot1.5.2安装配置--1.5.2版本问题

    简述下java环境 1.安装jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...