通常我们对于数据遍历会使用到foreach来操作当然也有使用到while list each函数来实现了,但在方便面上来看foreach更简洁好用性能也非常的不错,下面本人整理了一款在开发应用中foreach前后使用例子,希望对大家会有所帮助。

简单的一个php数组函数,之前没这个需要一直都不知道有这么一个函数,擦汗...

php数组逆序输出代码

 代码如下 复制代码
foreach(array_reverse($array) AS $key=>$value){

echo $value.'

';

}

array_reverse

(PHP 4, PHP 5)

array_reverse — 返回一个单元顺序相反的数组

说明

array array_reverse ( array $array [, bool $preserve_keys ] )

array_reverse() 接受数组 array 作为输入并返回一个单元为相反顺序的新数组,如果 preserve_keys 为 TRUE 则保留原来的键名。

Example #1 array_reverse() 例子

 代码如下 复制代码

$input  = array("php", 4.0, array("green", "red"));

$result = array_reverse($input);

$result_keyed = array_reverse($input, TRUE);

?>

这将使 $result 和 $result_keyed 具有相同的单元,但是注意键名的区别。$result 和 $result_keyed 的打印输出显示分别为:

Array

(

[0] => Array

(

[0] => green

[1] => red

)

[1] => 4

[2] => php

)

Array

(

[2] => Array

(

[0] => green

[1] => red

)

[1] => 4

[0] => php

)

例子,在PHP模板引擎中

模板文件:

 代码如下 复制代码
{$web_tile}

{$article_title}

-- by {$author}


{$content}

-- publish @ {$time}

foreach test:

{foreach ( from=url key=b item=c )}

{==c}

{/foreach}

解析引擎:

 代码如下 复制代码
// var

$pattern_var = "/{$left_tag}\\$([\w\d] ){$right_tag}/";

$replace_var = '<?php echo \$this->var_tpl_arr["$1"];?>';

if (preg_match($pattern_var, $content)) {

$content = preg_replace($pattern_var, $replace_var, $content);

}

// foreach

preg_match_all("/{$left_tag}foreach\s ([^{] ?){$right_tag}/is", $content, $match_foreach);

if (isset($match_foreach[1]) && is_array($match_foreach)) {

foreach($match_foreach[1] as $match_key => $match_value) {

$split_foreachs = array_filter(preg_split('/\s /is', $match_value));

$new_foreach_tag = array();

foreach($split_foreachs as $split_foreach) {

$split = explode("=", $split_foreach);

if (count($split == 2)) {

if(in_array($split[0], array("from","item","key"))) {

//过滤标签 不存在过滤

$new_foreach_tag[$split[0]] = $split[1];

}

}

}

$from = $key = $item = '';

extract($new_foreach_tag);

$key = ($key) ? '$'.$key.' =>' : '' ;

$replace_foreach = '<?php foreach($this->var_tpl_arr["'.$from.'"] as '.$key.' $'.$item.') { ?>';

$content = str_replace($match_foreach[0][$match_key], $replace_foreach, $content);

}

}

$pattern_foreach = "/{$left_tag}\/foreach{$right_tag}/";

$replace_foreach = "<?php } ?>";

if (preg_match($pattern_foreach, $content)) {

$content = preg_replace($pattern_foreach, $replace_foreach, $content);

}

// var in statement

$pattern_var = "/{$left_tag}==([\w\d] ){$right_tag}/";

$replace_var = '<?php echo \$$1;?>';

if (preg_match($pattern_var, $content)) {

$content = preg_replace($pattern_var, $replace_var, $content);

}

解析后:

 代码如下 复制代码
<?php echo $this->var_tpl_arr["web_tile"];?>

<?php echo $this->var_tpl_arr["article_title"];?>

-- by <?php echo $this->var_tpl_arr["author"];?>


<?php echo $this->var_tpl_arr["content"];?>

-- publish @ <?php echo $this->var_tpl_arr["time"];?>

foreach test:

<?php foreach($this->var_tpl_arr["url"] as $b => $c) { ?>

<?php echo $c;?>

使用:

 代码如下 复制代码

require_once 'core/YATP.class.php';

$app = new YATP();

date_default_timezone_set("Asia/Shanghai");

$app->is_cache = false;

$article_title = "yet,it is a simple template engine";

$author = "sanwhiteyu@tencent.com";

$web_tile = "just test ";

$content = "It is easy to write a simple template engine for yourself,what u can do is try to do it!";

$time = date("Y-m-d H:i:s",time());

$url = array(

"url1"=>"http://www.jquerycn.cn",

"url2"=>"http://www.jquerycn.cn",

);

$app->assign("article_title",$article_title);

$app->assign("author",$author);

$app->assign("web_tile",$web_tile);

$app->assign("content",$content);

$app->assign("time",$time);

$app->assign("url",$url);

$app->display("index.html");

// end of script

php foeeach页面输出,PHP数组foreach遍历输出例子详解相关推荐

  1. PHP数组foreach遍历输出例子详解

    通常我们对于数据遍历会使用到foreach来操作当然也有使用到while list each函数来实现了,但在方便面上来看foreach更简洁好用性能也非常的不错,下面本人整理了一款在开发应用中for ...

  2. JAVA笔记- JAVA一维、二维数组的遍历与使用详解

    1- 数组概述 需求:现在需要统计某公司员工的工资情况,例如计算平均工资.找到最高工资等.假设该公司有80名员工,用前面所学的知识,程序首先需要声明80个变量来分别记住每位员工的工资,然后在进行操作, ...

  3. JAVA笔记- JAVA对象数组的遍历与使用详解

    1- 对象数组概述 基本类型的数组:存储的元素为基本类型 int[] arr={1,2,3,4} 对象数组:存储的元素为引用类型 Student[] stus=new Student[3]; 解释:: ...

  4. php数组元素倒序输出,PHP数组foreach倒序输出

    foreach(array_reverse($array) as $key=>$value){ echo $value; } 简单的函数array_reverse array array_rev ...

  5. php页面的循环输出数组,PHP抓取页面上的数组 并循环输出 急

    PHP抓取页面上的数组 并循环输出 急 在线等 我用file_get_contents()抓取了 这个网址上的内容 http://simonfenci.sinaapp.com/index.php?ke ...

  6. Java如何获取数组的长度及数组的遍历输出

    获取数组的长度 如何获取数组的长度,格式: 数组名称.length 这将会得到一个int数字,代表数组的长度. 数组一旦创建,程序运行期间,长度不可改变. public class Demo03Arr ...

  7. ASP.NET页面与IIS底层交互和工作原理详解 (二)

    第三回: 引言 Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了IHttpHandler ...

  8. java+getactionmap_Struts2 使用OGNL遍历map方法详解

    一.Action中的代码:MapAction.java package com.zx.demo.action; import java.util.ArrayList; import java.util ...

  9. php 打印对象详细信息,php打印显示数组与对象的函数详解

    php打印显示数组与对象的函数详解 发布于 2014-11-17 18:55:49 | 699 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext P ...

  10. php output详解,PHP输出缓冲控制Output Control系列函数详解,output函数详解

    PHP输出缓冲控制Output Control系列函数详解,output函数详解 概述 以前研究过PHP的输入输出缓冲,不过博客搬家以后,原来文章找不到了,今天看到一篇好文,顺便转载过来. 简介 说到 ...

最新文章

  1. 中山学院计算机学院家长座谈会,计算机科学与技术学院举办校友座谈会
  2. 程序从命令行接收多个数字,求和之后输出结果。
  3. 《ES6标准入门》49~68Page 数值的拓展 数组的拓展
  4. 二维码原理--开胃小知识
  5. 8086实时时钟实验(二)——《x86汇编语言:从实模式到保护模式》读书笔记06
  6. windows定时任务
  7. spring循环依赖及解决方式_来探究一下Spring 循环依赖的三种方式
  8. Web前端开发前景怎么样?现在学习还来得及吗?
  9. 综合应用WPF/WCF/WF/LINQ之二十七:代码生成器之DBMLToProcedure
  10. Bitset的一些总结
  11. postgres初始化数据库
  12. android好用的窗口小工具下载,股票窗口小工具,安卓股票小插件
  13. Python(2)模块和数据类型
  14. win10系统预加载服务器,等等, 你的win10关闭了这几个服务, 会流畅许多
  15. 【转载】printf打印是字体和背景带颜色的输出的方法
  16. 从零写CRNN文字识别 —— (1)准备工作
  17. 安卓手机如何防盗_安卓手机也能像苹果一样!教你如何查看安卓手机电池损耗...
  18. Python在线聊天室
  19. php案例:$_SERVER详解(图文并茂)
  20. Word(WPS文字)批量修改表格宽度

热门文章

  1. 每日一题 PAT 甲级1001 格式化输出
  2. tensorflow中prefetch最合适的用法
  3. tensorflow手动实现算法之三逻辑回归
  4. 文件操作 详解(freopen)(C++)
  5. SLAM学习笔记-------------(九)后端1
  6. 多线程处理同一批数据_Java 多线程基础(一)
  7. 实现mvcc_数据库中的引擎、事务、锁、MVCC(三)
  8. ssm启动不报错_搭建ssm+maven环境,启动报错,说spring监听无法实例化,求解?
  9. jquery 文档就绪
  10. Sentinel限流实战