【foreach输出显示、进度有关问题,高手解决】教程文章相关的互联网学习教程文章

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

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

foreach-PHP导入文本文件的正则表达式提取部分内容变成数组然后存入到mysql数据库中

想使用PHP正则表达式读取下面的文本文件,将date,time读取 并加上当前的年 写成: 2013-07-03 17:22,还有NMBR的电话号码读出,并生成一个循环的mysql语句 并存入到mysql数据库中.RINGRINGDATE = 0703 TIME = 1722 NMBR = 13332415858RINGRINGDATE = 0704 TIME = 0812 NMBR = 04124834444RINGRING 变成:insert into calllog (datetime,phonenumber ) values ('2013-07-03 17:22','13332415858'); insert into calllog (datetime,phonen...

PHP数组foreach$key排名的问题

foreach($abc as $key => $val){ 这里是按照$key在做排序,但是中间有几个$val条件成立的人,要从排名中剃掉 } 以上,请问$key如果剃掉要除名的情况下,依然正常排序举个例子1,小明 2,小白 3,小黑 4,小红这是正常排序,但是我要剃掉name = 小白的数据,这时候就变成1,小明 3,小黑 4,小红了,但是我要的效果是1,小明 2,小黑 3,小红剔除以后仍然正常排序这个问题已被关闭,原因: 回复内容:foreach($abc as $key => $val){ 这里是按...

foreach嵌套循环性能优化的问题

(有很多结构一样的产品表,表名不一样)先是一个循环产品表 查询每个产品表按条件筛选出来的产品。 然后再把得获取的产品循环一条一条的插入新建的一个表中。 刚开始的时候我用的两个foreach实现这个功能了,但是数据量太大了,一次执行的结果就是内存不够用,直接 504 Gateway Time-out 错误。数据库中只插入了1800多条数据,剩余的数据就没有插入了。 现在就是想寻求一种思路,怎么解决数据量太大,而内存不够用的问题?最好...

php的foreach循环6万多次应该如何使用多线程

背景:我在thinkphp框架下使用foreach循环生成一个缓存,然后在别的控制和方法下调用缓存。面临的问题是首先排除按需生成,因为不确定6万多条数据中那一条能够用到,所以需要生成全部内容,又因为生成内容耗时太长所以发问题求教, 缓存中每条数据有6个字段其中4个为string,2个为int现在的运行方式是直接foreach循环然后使用S方法生成文件缓存。 这样生成的文件缓存大约为15M,生成的时长为5-7s,含数据库查询时间。foreach($data...

foreach只执行一次

问题是为什么foreach每次只执行一次。 一批数据处理的话,第一个正确会正常处理。后面就不动了。需要执行: 将下面数据中的某一个数据$one转到$two。 左边删除$one.右边没有$two则新增,有则不增加。staff_departmentid的数据结构例如: 7-8-9-6 6-7-9 8-9-10-6 8-9 $one=I('post.one');$two=I('post.two');$m=M('staff');//第一步 先查找左边准备要修改的值$conone['staff_departmentid']=array('like',"%".$one."%");...

php引用foreach输出问题

输出string(1) "1" string(1) "1" 谁给解释一下?回复内容:输出string(1) "1" string(1) "1" 谁给解释一下?这样解释吧,把foreach展开成赋值的话foreach($arr as &$value) {//noop } 大致是php#begin first foreach $value = &$arr[0]; //noop $value = &$arr[1]; //noop #end foreach 这时候如果打印$arr,你会看到array(2) {[0]=>string(1) "1"[1]=>&string(1) "2" } 也就是说$value仍然是$arr[1]的引用(别名)然后我们再把第...

foreach遍历父数组,然后遍历子数组,如何拼接父子数组

说明:parent array中含有唯一pid,pid通过调用M层获取子数组内容,要求parent数组和child数组拥有相同的key,然后合并成一起 code:foreach($parentArray as $v){$a['id']=$v['pid'];$a['name'] =$v['name'];...$array[] =$a;$childContent = $m->getChildContent($v['pid']);foreach($childContent as $v2){$b['id']=$v2['cid'];$b['name']=$v2['cname'];...$array2[]=$b;} } 我想让输出这样的格式array[0]{$array里的内容,$array2里...

php源码调试foreach诡异现象【图】

$array = array(1,2,3,4); foreach($array as $key => $value) {$value = &$array[$key];echo current($array); } 输出 2 2 3 3 这段代码给我搞懵了,希望大神通过php源码解释一下。回复内容:$array = array(1,2,3,4); foreach($array as $key => $value) {$value = &$array[$key];echo current($array); } 输出 2 2 3 3 这段代码给我搞懵了,希望大神通过php源码解释一下。 首先,要理解这个问题,我们得先将循环拆解,然后看看...

foreach后循环多维数组获取快递名,到前台赋值

array(6) {[0]=>array(1) {["id"]=>string(16) "1210325131249664"}[1]=>array(1) {["id"]=>string(16) "1210365844703232"}["addr"]=>array(15) {["address"]=>string(37) "湖南常德鼎城区 阿斯顿撒大"["addressName"]=>string(0) ""["bestTime"]=>string(0) ""["city"]=>int(199)["consignee"]=>string(18) "加大看时间段"["country"]=>int(1)["district"]=>int(1662)["email"]=>string(0) ""["id"]=>float(1200450386397207)["m...

foreach传引用的时候有bug?

$a = array(1,2,3);var_dump($a);foreach($a as &$b){}var_dump($a);foreach($a as $b){var_dump($b);} 下面是5.2到7.0的结果array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }array(3) { [0]=> int(1) [1]=> int(2) [2]=> &int(3) }int(1) int(2) int(2) 早期版本的输出请看http://3v4l.org/PXsWr请问这是不是php的一个bug?回复内容:$a = array(1,2,3);var_dump($a);foreach($a as &$b){}var_dump($a);foreach($a as $b){var...

foreach-PHP中为什么数组中可变变量可以这么用?

$arr=array('a'=>'aa','b'=>'bb','c'=>'cc'); foreach($arr as $key=>$v){ $$key=$v; } echo $a;//aa$$key然后变量应该是aa;但是输出a才有内容回复内容:<?php $arr=array(a=>aa,b=>bb,c=>cc); foreach($arr as $key=>$v){ $$key=$v; } echo $a;//aa$$key然后变量应该是aa;但是输出a才有内容眼花了吧...$key ===> 'a' $$key ===> $a $v 才是 aa$$这个是可变变量的用法,$$key 等价于 $a($key = a),然后此时的$v又等于aa,然后就$...

php怎么将二维数组键名相同的元素转为新的数组?不用for,foreach循环【图】

如图所示是一个二维数组[别纠结,为了方便我将其转为了json], 其中type只有两个值1和2,现在需要将type=1的元素转到$new数组中,type=2的转到$old数组中。 除了用循环还有什么方法没? 附上json: [{"id":"10","type":"1","cpu":"Intel Xeon E3-1241v3","cores":"4","ram":"16","hard_drive":"1TB SATA","port_speed":"100Mbps","transfer":"20TB","ipmi_kvm":"Y","price":"148","price1":"142","price2":"135","price3":"127","price4"...

双层foreach循环,取出key相等的元素,组成新数组返回,如何优化成一层循环?

if($arr1 && $arr2) {foreach($arr1 as $key1 => $val1) {foreach($arr2 as $key2 => $val2) {if($val1['orderId'] == $val2['orderId']) {$arr1[$key1]['transId'] = $val2['transId'];}}}}回复内容:if($arr1 && $arr2) {foreach($arr1 as $key1 => $val1) {foreach($arr2 as $key2 => $val2) {if($val1['orderId'] == $val2['orderId']) {$arr1[$key1]['transId'] = $val2['transId'];}}}} if($arr1 && $arr2) {$ids = array_co...

深入理解PHP的foreach机制

PHP中的foreach如果数组的is_ref为1,则直接循环原数组如果foreach($arr as &$v){}最终会把$arr的is_ref设为1,直接循环原数组如果数组is_ref为0,但引用计数大于1,会拷贝数组,并开辟新的内存空间,循环被拷贝的数组以上说的有没有问题呢?还有比较纠结的一个问题在foreach之初,就把数组的引用计数+1呢,然后数组改变的时候,$arr[$k]=111或者运行current等函数,copy on write呢还是foreach之初,数组的引用计数并未+1,而是判...