电话+V:159999-78052 ,欢迎咨询php数组遍历传引用,[python实用课程],[C++单片机原理],[C#网站搭建],[Nodejs小程序开发],[ios游戏开发],[安卓游戏开发],[教会用大脑用想法赚钱实现阶层跨越]
PHP中遍历数组有三种常用的方法:
一、使用for语句循环遍历数组;
二、使用foreach语句遍历数组;
三、联合使用list()、each()和while循环遍历数组。
这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。
PHP4引入了foreach结构,和Perl以及其他语言很像。这只是一种遍历数组简便方法。foreach仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。
?php
$arr=array(1,2,3,4);
foreach($arras$value){
$value=$value*2;
}
//$arrisnowarray(2,4,6,8)
?
PHP中foreach函数用法?1.foreach(被foreach的对象(一般是数组)as内容){
}
例子
$x=array(1,2,3,4,5)
foreach($xas$y){
//这里的y依次为1,2,3,4,5
}
2.foreach(被foreach的对象(一般是数组)asindex=内容){
}
例子
$x=array(1,2,3,4,5)
foreach($xas$index=$y){
//这里的y依次为1,2,3,4,5,$index依次为0,1,2,3,4
}
关于PHP中foreach循环修改数组值失效的问题
试试这样
$tmp_data=$this-contracts;
foreach($tmp_dataas$k=$v){
$v["khdq"]=$this-getNameById($v["khdq"],"khdq");
}
$this-contracts=$tmp_data;
unset($tmp_data);
foreach($this-contractsas$k=$v){
这样不成功是因为foreach此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。
就是说必须是变量才能在foreach中传引用
为什么php中foreach(&$v)要加&,我知道是值引用,不过在项目里有什么作用就不知道如果你想在遍历的时候直接改变数组中的值,就增加引用,如果只是单纯遍历数组,可以不用引用
phpforeach二维数组用法$a=array(array(0,1),array(2,3),array(4,5));
foreach($aas$k=$v){
if(is_int($v)){
echo$v.'br/';
}elseif(is_array($v)){
foreach($vas$k2=$v2){
echo$v2.'';
}
echo'br/';
}
}
这里引用一下楼上的方法吧,就是双重循环读取每个数组中值
至于foreach中的$k跟$v是自定义变量,可以用任何合法变量名就可以了,$k代表的是数组中的键,$v代表的是数组中的值,第一个$v是循环出来的一维数组,$v2是一维数组中的每个值
电话+V:159999-78052
机构由一批拥有10年以上开发管理经验,且来自互联网或研究机构的IT精英组成,负责研究、开发教学模式和课程内容。公司具有完善的课程研发体系,一直走在整个行业发展的前端,在行业内竖立起了良好的品质口碑。