【深入探讨php的foreach】教程文章相关的互联网学习教程文章

PHP学习之foreach循环时加&符号的说明【代码】

本文主要内容是关于PHP的foreach循环时加&符号的说明,感兴趣的朋友可以了解一下。foreach时加&符号:遍历的同时改变原数组即修改数据或者增加数据。$arr = [a, b, c]; foreach ($arr as $key => &$value) {$value = $value . 111; } echo json_encode($arr); // ["a111","b111","c111"],这里改变了原来数组的值使用&可能出现的问题:$arr = [a, b, c]; foreach ($arr as $key => &$value) {$value = $value . 111; }foreach...

[PHP] foreach循环的引用赋值中出现的问题【代码】

foreach($arr as &$value)1.引用赋值符号&,是每次循环的时候,把当前元素变成地址,$value变量就是对应元素的地址,循环结束$value是一个指向最后一个元素的地址2.当我下次循环,使用了这种方式foreach($arr as $value) ,会出现问题;foreach会把每个元素赋值给后面的$value变量3.因此,逻辑就变成了,把每个元素修改给原数组的最后一个元素,最后一次循环会一直是前一次的结果4.最好不用引用传递,用这种形式$arr[$key]改原数组,或者在下次...

ThinkPHP中循环遍历的两种方法(volist和foreach标签)【代码】【图】

在ThinkPHP中系统提供了两个标签来实现便利操作:volist标签和foreach标签。volist语法格式:<volist name=需要遍历的模板变量名 id=当前遍历到的元素名 循环体 </volist>注意:volist是双标签语句,需要闭合。foreach语法格式:<foreach name=需要遍历的模板变量名 item=当前遍历到的元素名 循环体 </foreach>注意:foreach同样是双标签语句,需要闭合。区别:volist语法格式与foreach语法格式形式上大体相同,volist除了上述的na...

PHP运用foreach神奇的转换数组(实例讲解)

要求: 将二维数组$arr转换为以‘time和‘type为下标、‘data‘为值的二维数组; 原数组: $arr = array(0 => array(data => 100,type => 1,time => 2018-01-26,),1 => array(data => 200,type => 2,time => 2018-01-26,),2 => array(data => 300,type => 2,time => 2018-01-27,),3 => array(data => 400,type => 3,time => 2018-01-27,),4 => array(data => 500,type => 4,time => 2018-01-28,),); 转换: foreach ($arr as $key ...

PHP在弹框中获取foreach中遍历的id值并传递给地址栏【图】

1.php有时候我们需要再弹框中获取foreach中遍历的数据(例如id),在弹框中点击按钮并传递给地址栏跳转。那么应该怎么做呢。 2. 点击取现按钮,如果没有设置密码->弹框3. 点击去设置,把用户名通过地址栏传递给别的页面。4.使用onclick事件,把参数charge传递给function函数。function为弹窗函数。5. 把username值传递过来。并给“去设置”赋值herf属性。6. <div class="mask" ></div><div class="mess"><div style="text-align:le...

浅谈php中的循环while、do...while、for、foreach四种循环

php中的while循环,循环执行代码块制定的次数,或者当指定的条件为真时循环执行代码块。 ------------------------------------------------------------- 在我们编写代码是时候,我们经常需要一块代码块重复执行多次。我们就可以使用while循环语句来完成这个任务。 while--只要指定条件成立,则循环执行代码块。 do...while--首先执行一次代码块,然后在指定的条件成立时重复这个循环。 for--循环执行代码块制定的次数。 fore...

深入了解PHP中的Array数组和foreach【图】

1. 了解数组 PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。详细的解释可参见:PHP.net中的Array数组 。 2.例子:一般的数组 这里,我通过一个简单的例子,并使用图形方式来了解数组。 $a = array(3 => a, 1 => b, 2 => c);echo var_dump($a); [注]:使用箭头描述数组$a各个单元对应某一内存地址的数据值(实际上,它内部结构采用HashTable结构,可以参考鸟哥写的PHP中的Hash算法)。 3.例子:...

浅谈PHP中关于foreach使用引用变量的坑【图】

写PHP好多年,但仍然会犯低级错误,今天遇到个 foreach中引用变量时的坑,PHP版本为 5.6.12 代码如下: <?php $arr = [a, b, c, d, e]; foreach ($arr as $i=>&$a) {$a = $a._. $a;echo $a .<br>; } echo <hr>; foreach ($arr as $i=>$a) {echo $a .<br>; } echo <hr>; print_r($arr);输出结果一开始看到第二个 foreach 输出的结果感觉很是莫名其妙,怎么会输出两个 d_d 呢? 仔细想了想,原来因为PHP foreach 中的 $a 的作用域是整...

PHP7新特性foreach 修改示例介绍

一、foreach()循环对数组内部指针不再起作用,在PHP7之前,当数组通过foreach迭代时,数组指针会移动。现在开始,不再如此,见下面代码。。 $array = [0, 1, 2]; foreach ($array as &$val) { var_dump(current($array)); }PHP5运行的结果会打印int(1) int(2) bool(false) PHP7运行的结果会打印三次int(0),也就是说数组的内部指针并没有改变。 之前运行的结果会打印int(1), int(2)和bool(false) 二、按照值进行循环的时候,foreac...

PHP 数组遍历foreach语法结构及实例

foreach() PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。 语法: foreach (array as $value)statement // 或者: foreach (array as $key => $value)statement上述语法中,每次循环将当前单元的值赋给 $value 并且数组内部的指针向前移一步。在第二种语法格式中还将当前单元的键名也会在每次循环中赋给变量 $key。 例子:<?p...

PHP模板引擎Smarty内建函数foreach,foreachelse用法分析【图】

本文实例讲述了PHP模板引擎Smarty内建函数foreach,foreachelse用法。分享给大家供大家参考,具体如下: 在 Smarty 模板中,您可以使用 foreach 来重复一个区块。而在模板中则需要从 PHP 中分配过来一个数组。这个数组可以是多维数组。Smarty 中 {foreach} 标记和 PHP 中 foreach 相同,不同的是它们的一个在模板文件中使用,一个在 PHP 脚本中使用。因此,语法会不同。但是,它们的作用都是相同的,即遍历数组中的内容。与 {foreac...

Smarty foreach控制循环次数的一些方法

1、在 smarty 中数组是经常会用到的,循环遍历数组用 section 或者 foreach ,如何得到数组长度或者判断一个数组个数呢?可以用{$array| count} 来试试。 2.代码如下: {foreach from=$variable key=key name=name iteam=value} {$variable|@count} // 获取数组长度 {$smarty.foreach.loop.index} // 获取当前循环数组元素下标,以0开始 {$smarty.foreach.loop.iteration} // 获取当前循环次数,以1开始 ...

smarty模板引擎使用内建函数foreach循环取出所有数组值的方法

本文实例讲述了smarty内建函数foreach的使用方法,分享给大家供大家参考。具体如下: 显示文件:index.php:代码如下:<?php //创建smarty对象 require_once("./libs/Smarty.class.php"); $smarty = new Smarty(); $arr1 = array("北京","上海","广州");//索引数组 $smarty->assign("arr1",$arr1);//分配索引数组 $arr2 = array("city1"=>"北京","city2"=>"上海","city3"=>"广州");//关联数组 $smarty->assign("arr2",$arr2);//分配...

smarty内置函数foreach用法实例

本文实例讲述了smarty内置函数foreach用法。分享给大家供大家参考。具体如下: 输出文件:index.php代码如下:<?php require_once(libs/Smarty.class.php); $smarty = new Smarty(); $smarty->setTemplateDir($_SERVER[DOCUMENT_ROOT]."/php/templates/"); $smarty->setCompileDir($_SERVER[DOCUMENT_ROOT]."/php/templates_c/"); $smarty->setCacheDir($_SERVER[DOCUMENT_ROOT]."/php/cache/"); $smarty->caching = false; $name =...

ThinkPHP之foreach标签使用概述

ThinkPHP模板的foreach标签用于在模板中循环输出数据集或者对对象进行遍历输出。 相对于volist标签而言,foreach标签没有volist标签那么多的功能,却可以对对象进行遍历输出,而volist标签通常是用于输出数组。 foreach标签用法如下: <foreach name="list" item="vo"> 用 户 名:{$vo.username}<br /> 电子邮件:{$vo.email}<br /> 注册时间:{$vo.regdate|date="Y-m-d H:i",###} <hr /> </foreach>foreach标签中的name为必选项,...