【PHP-我在用这个数组和foreach做错什么?】教程文章相关的互联网学习教程文章

php循环语句for()与foreach()用法区别介绍_php技巧

for 循环是 PHP 中最复杂的循环结构。它的行为和 C 语言的相似。 for 循环的语法是: for (expr1; expr2; expr3) statement 第一个表达式(expr1)在循环开始前无条件求值一次。 expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。 expr3 在每次循环之后被求值(执行)。 每个表达式都可以为空。expr2 为空意味着将无限循环下去(和 C 一样,PHP 认为其值为 TRUE)。这可能...

PHP中使用foreach和引用导致程序BUG的问题介绍_php技巧

代码如下:$a = array(1, 2); $b = array(11, 12); foreach($a as &$r){ } foreach($b as $r){ } echo $a[1]; // 输出 12 两个的循环的本意可能是: 第一个循环需要在循环中修改元素的内容, 所以使用引用; 但第二个循环只是把 $r 当作一个临时变量. 可是, 为什么 $a[1] 的值发生了改变呢? 当对 $a 的迭代完成后, $r 是 $a[1] 的引用, 改变 $r 的值, 就是改变 $a[1]. 这时, 你可以会奇怪, 代码中并没有修改 $r, 也没有修改 $a[1] 呀?...

深入for,while,foreach遍历时间比较的详解_php技巧

这个是从别人空间里看来的,不过自己还真从来没这么做过他们三者之间的比较,今天也学习了一下。 代码如下:$arr = array();for($i = 0; $i $arr[] = $i*rand(1000,9999);}function GetRunTime(){list($usec,$sec)=explode(" ",microtime());return ((float)$usec+(float)$sec);}/*=============================================*/$time_start = GetRunTime();for($i = 0; $i $str = $arr[$i];}$time_end = GetRunTime();$time_use...

探讨:php中在foreach中使用foreach($arras&$value)这种类型的解释_php技巧

自 PHP 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。 代码如下:$arr = array(1, 2, 3, 4);foreach ($arr as &$value) { $value = $value * 2;}// $arr is now array(2, 4, 6, 8)?>此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。 代码如下:foreach (array(1, 2, 3, 4) as &$value) { $value = $value * 2;}?>

PHP中的函数--foreach()的用法详解_php技巧

PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。 代码如下:foreach (array_expression as $value) statementforeach (array_expression as $key => $value) statement第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的...

如何在smarty中增加类似foreach的功能自动加载数据_php技巧

在smarty中使用自定义插件来加载数据(见:编写Smarty插件在模板中直接加载数据的详细介绍),在使用的时候还是感觉不够方便,灵机一动就想写成类似foreach那种标签:第一步:在Smarty_Compiler.class.php的_compile_tag函数中增加: 代码如下://加载数据的开始标签case 'load': $this->_push_tag('load'); return $this->_complie_load_start($tag_args); break;//加载数据的结束标签case '/load': $this->_pop_tag('load'); retu...

深入解析php中的foreach问题_php技巧【图】

前言:php4中引入了foreach结构,这是一种遍历数组的简单方式。相比传统的for循环,foreach能够更加便捷的获取键值对。在php5之前,foreach仅能用于数组;php5之后,利用foreach还能遍历对象(详见:遍历对象)。本文中仅讨论遍历数组的情况。foreach虽然简单,不过它可能会出现一些意外的行为,特别是代码涉及引用的情况下。下面列举了几种case,有助于我们进一步认清foreach的本质。问题1: 代码如下:$arr = array(1,2,3);foreac...

php中如何使对象可以像数组一样进行foreach循环_php技巧

刚接触到题的时候,我也没有考虑到Iterator模式,试了几个一般想法,失败以后。。。。就直接去翻看了foreach的源码实现,期望发现foreach处理对象的时候是否有什么特殊性,可以做为突破口。 跟踪了半天以后发现了核心逻辑中的一个奇怪的switch: 代码如下:switch (zend_iterator_unwrap(array, &iter TSRMLS_CC)) { default: case ZEND_ITER_INVALID: ..... break case ZEND_ITER...

深入解析php中的foreach函数_php技巧

Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。 有两种语法: 代码如下:foreach (array_expression as $value) statementforeach (array_expression as $key => $value) statement例子1: 代码如下:$arr=array(1,2,3,4);foreach($arr as $value){ echo $value."";}?>例子2: 代码如下:$arr=a...

PHP中多维数组的foreach遍历示例_php技巧

代码如下://声明一个三维数组 $info=array( "user"=>array( array(1,"zhangsan",20,"nan"), array(2,"lisi",20,"nan"), array(3,"wangwu",25,"nv") ), "score"=>array( array(1,100,98,95,96), array(2,56,98,87,84), array(3,68,75,84,79) ), "connect"=>array( array(1,'2468246',"salkh@bbs.com"), array(2,'343681643',"aikdki@sina.com"), array(3,'3618468',"42816@qq.com") ) ); //循环遍历,输出一个表格 foreach($info as...

ThinkPHP之foreach标签使用概述_php实例

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

php下foreach提示Warning:Invalidargumentsuppliedforforeach()的解决方法_php技巧

本文实例讲述了php下foreach()错误提示Warning: Invalid argument supplied for foreach() 的解决方法。分享给大家供大家参考。具体实现方法如下: 一、问题: php下foreach()错误提示Warning: Invalid argument supplied for foreach() 错误提示:Warning: Invalid argument supplied for foreach() in E:wampwwwmyshopcart.php on line 95 二、解决方案: 错误提示 Warning:Invalid argument supplied for foreach() 的中文意思是...

smarty内置函数foreach用法实例_php实例

本文实例讲述了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 =...

PHP中foreach()用法汇总_php技巧

PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。 foreach (array_expression as $value)statementforeach (array_expression as $key => $value)statement第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并...

浅谈PHP中foreach/in_array的使用_php技巧

php在开发效率很高,这是无可厚非的,但是却是在牺牲执行效率的。php数组功能非常强大,但是也要多加考虑,多试几种情况情况,以防万一,这里,我就简单的说两个遇到的坑,以后如果有发现更多的,再补上吧!foreach 提供了遍历数组的简单方式,可以很方便的读取到数据或对象的内容,但是官方文档说了,由于 foreach 依赖内部数组指针,在循环中修改其值将可能导致意外的行为。所以,基本上, 1、不要想在循环内部修改里面的值,否则...