Smarty Foreach 使用验证

出口结果:
id: 1000
id: 1001
id: 1002
foreach 键的身体力行和嵌套的言传身教
{*
数组定义如下:

<ul>
<li><a href=”item.php?id=23″>2456: Salad</li>
<li><a href=”item.php?id=96″>4889: Cream</li>
</ul>

last在此时此刻{foreach}循环处于最终地点是值为TRUE。

smarty code:

{* 输出 0|1, 1|2, 2|3, … 等等 *}
{foreach from=$myArray item=i name=foo}
{$smarty.foreach.foo.index}|{$smarty.foreach.foo.iteration},
{/foreach}

例九. last属性示例

上例将出口:

{config_load file=’config.conf’}
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
 <HEAD>
  <TITLE>Smarty学习</TITLE>
  <META NAME=”Generator” CONTENT=”EditPlus”>
  <META NAME=”Author” CONTENT=””>
  <META NAME=”Keywords” CONTENT=””>
  <META NAME=”Description” CONTENT=””>
 </HEAD>

复制代码 代码如下:

<?php
$search_condition = “where name like ‘$foo%’
“;
$sql = ‘select contact_id, name, nick from
contacts ‘.$search_condition.’ order by name’;
$smarty->assign(‘results’,
$db->getAssoc($sql) );
?>

{* this will output 0|1, 1|2, 2|3, … etc *}
{* 该例将输出0|1, 1|2, 2|3, … 等等 *}
{foreach from=$myArray item=i name=foo}
{$smarty.foreach.foo.index}|{$smarty.foreach.foo.iteration},
{/foreach}  

 

.iteration
iteration 包罗当前轮回的奉行次数,总是从 1 初阶,每实践二遍自加 1。
例如:

示例:

1、from    类型:array数组 须求性:Yes要求私下认可值:n/a   
描述:循环访谈的数组

 <BODY>
 {capture name=banner}{*疏解掉中间彰显内容*}
 {include file=”banner.tpl”}
 {/capture}
 {include file=”banner.tpl” title=”Smarty学习”}
{$smarty.get.page}<br/>
{$smarty.post.page}<br/>
{$smarty.cookies.name}<br/>
{$smarty.server.SERVER_NAME}<br/>
{$smarty.env.PATH}<br/>
{$smarty.session.id}<br/>
{$smarty.request.username}<br/>
{$smarty.now|date_format:’%Y-%m-%d %H:%M:%S’}<br/>
{$smarty.const.PAGETITLE}{*常量*}<br/>
Hello {$name}{*变量*}<br/>
{html_select_date display_days=yes}<br/>
{$member.fax}<br/>
{$member.phone.home}<br/>
{$tempmember.member}<br/>
{$tempmember.phone.home}{*多维数组*}<br/>
{#error_message#}{*安顿文件属性*}<br/>
{$name|lower}{*smarty字符串函数*}<br/>
{$name|upper}{*smarty字符串函数*}<br/>
{‘now’|date_format:’%Y-%m-%d’}{*smarty日期函数*}<br/>
{$title|truncate:11:”…”}{*截断字符串超长加…*}<br/>
{mailto|lower
address=”mailto:linux@admin.com%22%7D%7B*mailto邮件*}<br/>
mailto:%7B$tempmember%7C@count}{*数据的总额*}<br/>
{$english_word|capitalize}{*首字母大写*}<br/>
{$english_word|capitalize:true}{*各类单词的首字母大写*}<br/>
{$title|count_characters:true}{*字符串的长度加true字符空格,不加true不划算空格*}<br/>
{$title|cat:’字符串后加盟字符’}{*拼接字符串*}<br/>
{$title|count_words}{*测算字符数量*}<br/>
{$title2|default:”dsgadsgds”};{*万一变量海市蜃楼就输出私下认可值*}<br/>
{$english_word|escape:html}{*将字符串中的HTML转变为HTML编码形式*}<br/>
{$english_word|escape:htmlall}{*将字符串中的HTML调换为HTML编码格局*}<br/>
{$english_word|escape:url}{*将字符串中的HTML转变为U安德拉L编码格局*}<br/>
{$english_word|escape:quotes}{*将字符串中的HTML调换为HTML编码方式*}<br/>
{$title|indent:100}{*缩进钦命宽度*}<br/>
{$title|regex_replace:”/要/”:”爱”}{*正则表明式替换字符*}<br/>
{$title|replace:”要”:”爱”}{*Replace替换字符*}<br/>
{$english_word|spacify:”||”}{*分隔字符串*}<br/>
{$money|string_format:”%.2f”}{*格式化数字为Float数*}<br/>
{$money|string_format:”%d”}{*格式化数字为INT数*}<br/>
{$english_word|strip:” “}{*轮换空格*}<br/>
{$english_word|strip_tags:false}{*轮换标签*}<br/>
{$english_word|truncate:10:”…”}{*截取内定长度字符,暗中同意截取80字符长度*}<br/>
{$english_word|wordwrap:10}{*多长后字符串换行,默许换行长度为80*}<br/>
{$english_word|upper|spacify|truncate:30:”…”}{*斯Matty帮忙多个函数的组合,此构成为字符串先大写然后分隔然后截取钦赐长度*}<br/>
{foreach name=outer item=contact from=$contacts}{*foreach循环数组*}
  {foreach key=key item=item from=$contact}
  {$key}:{$item}<br/>
  {/foreach}
 {/foreach}
 {foreach name=outer item=contact2 from=$contacts2}
  {foreach key=key item=item from=$contact2}
  {$key}:{$item}<br/>
  {/foreach}
 {/foreach}
 {include_php file=”function.php”}{*带有钦定的PHP文件*}
 {insert name=”top” lid=”toplid” sid=”topsid”}{*调用insert_top
PHP函数,函数参数为lid和sid的值*}
 {if 1 eq 1}{*原则推断语句*}
  1=1
 {elseif 1 ne 1}
  1!=1
 {elseif 1 gt 1}
  1>1
  {elseif 1 lt 1}
  1<1
  {elseif 1 gte 1}
  1>=1
  {elseif 1 lte 1}
  1<=1
  {elseif not 1 eq 1}
  not 1=1
  {elseif (1 mod 1) eq 1}
  <font color=”red”>1%1=1</font>
  {else}
  你的为人真倒霉
  {/if}
 {ldelim}function insert_top {rdelim} is insert_top {*出口中括号*}
 {literal}{*步向一段HTML,脚本代码等*}
 <script language=”javascript” type=”text/css”>
 <!–
 function load()
 {
  alert(‘页面加载….’);
 }
 //–>
 </script>
  {/literal}
  {*涵盖一段PHP语句*}
  {php}
  echo “php代码运转”;
  {/php}
  {section name=member loop=$contacts3 show=true}{*while循环
show是还是不是SHOW section中的循环内容*}
   {if $smarty.section.member.first}
  first
 {/if}
 {if $smarty.section.member.last}
  last
 {/if}
 current loop rownum:{$smarty.section.member.rownum}<br/>
   current loop
iteration:{$smarty.section.member.iteration}<br/>
   index:{$smarty.section.member.index}
index_prev:{$contacts3[member.index_prev]}
index_next:{$contacts3[member.index_next]}
index:{$contacts3[member.index]} member:{$contacts3[member]}
   {section name=memberchild loop=$contacts4[member] max=2}
    memberchild:{$contacts4[member][memberchild]}
   {/section}
   total:{$smarty.section.member.total}{*数量长度或总记录数*}
  {/section}
 
 </BODY>
</HTML>

复制代码 代码如下:

与以下的代码的差异,odd和enen的含义?
{foreach from=$custid item=curr_id key=num}
{if num%2==0}
干啥
{else}
干任何的
{/if}
{/foreach}

{foreach from=$custid item=curr_id key=num}
   {if num is odd}
          干啥
   {else}
         干别的的
   {/if}
{/foreach}

     

复制代码 代码如下:

用模板以冬辰列表输出$myArray

<ul>
    <li>9: Tennis</li>
    <li>3: Swimming</li>
    <li>8: Coding</li>
</ul>

php code:

{* 在列表最后增多水平线 *}
{foreach from=$items key=part_id item=prod name=products}
<a href=”#{$part_id}”>{$prod}</a>{if
$smarty.foreach.products.last}<hr>{else},{/if}
{foreachelse}
… content …
{/foreach}

last在时下{foreach}循环处于最终地方是值为TRUE。

例十. total属性示例

     <?
require(“setup.php”);
define(‘PAGETITLE’,’pagtitle’);
function insert_top($lid,$sid)
{
 echo “insert function”;
}
$smarty=new SmartyRebuild();
$smarty->assign(‘name’,’Linux’);
$smarty->assign(‘title’,’在线有有要有温和是是非非要要’);
$smarty->assign(‘english_word’,’my name x4 is linux’);
$smarty->assign(‘money’,’344.2223′);
$smarty->assign(‘member’,array(‘fax’=>’010-95888484′,’email’=>’linux@admin.com’,
     ‘phone’=>array(‘home’=>’8488484′,’mobil’=>’5325325325353’)));
$tempMember=array();
$tempMember[‘member’]=’dsgads’;
$tempMember[“phone”][“home”]=”444333″;
$contacts=array();
$contacts[][“fax”]=”435454″;
$contacts[][“phone”]=”223523523″;
$contacts[][“fax”]=”42532532″;
$contacts[][“phone”]=”7888888″;
$contacts2=array(array(‘fax’=>’32523′,’phone’=>’325132532’),array(‘fax’=>’2313532′,’phone’=>’325325132523’));
$contacts3=array();
$contacts3[0]=”23523″;
$contacts4=array();
$contacts4[0][0]=”23523″;
$contacts4[0][1]=”23523″;
$contacts3[1]=”23523″;
$contacts4[1][0]=”23523″;
$contacts4[1][1]=”23523″;
$contacts3[2]=”23523″;
$contacts4[2][0]=”23523″;
$contacts4[2][1]=”23523″;
$contacts3[3]=”23523″;
$contacts4[3][0]=”23523″;
$contacts4[3][1]=”23523″;
$smarty->assign(‘contacts’,$contacts);
$smarty->assign(‘contacts2’,$contacts2);
$smarty->assign(‘contacts3’,$contacts3);
$smarty->assign(‘contacts4’,$contacts4);
$smarty->assign(‘tempmember’,$tempMember);
$smarty->display(‘index.tpl’);
?>

复制代码 代码如下:

向Smarty设置叁个数组,对于各类键名对应的种种循环值都包罗键。

{foreach},{foreachelse}

foreach 演示
{* 该例将出口数组 $custid 中的全体因素的值 *}

3、key      类型:string字符串     必要性:No可选    
暗中同意值:n/a     描述:当前键名的变量名

<?php
$items_list = array(23 => array(‘no’ => 2456, ‘label’ =>
‘Salad’),
                    96 => array(‘no’ => 4889, ‘label’ =>
‘Cream’)
                     );
$smarty->assign(‘items’, $items_list);
?>

{foreach from=$custid item=curr_id}
id: {$curr_id}<br>
{/foreach}

{foreach from=$custid item=curr_id key=num}
{if num is odd}
干啥
{else}
干任何的
{/if}
{/foreach}

例八. first属性示例

你恐怕感兴趣的稿子:

  • 动用斯玛特y
    获取当明天猴时间和格式化日期时间的格局详解
  • php Smarty date_format
    [格式化时间日期]
  • smarty内部日期函数html_select_date()用法实例深入分析
  • 在smarty中调用php内置函数的措施
  • 在smarty模板中利用PHP函数的不二等秘书诀
  • ThinkPHP使用smarty模板引擎的方法
  • smarty半个时辰快捷上手入门教程
  • PHP详细通透到底学习斯马特y
  • 斯马特y结合Ajax完结无刷新留言本实例
  • 深入分析smarty模板中临近for的功能达成
  • 减轻css和js的{}与smarty定界符争辩难点的三种方法
  • 斯马特y日期时间操作方法示例

<hr />
phone: 1<br />
澳门新萄京,fax: 2<br />
cell: 3<br />
<hr />
phone: 555-4444<br />
fax: 555-3333<br />
cell: 760-1234<br />

向斯马特y设置二个数组,对于每个键名对应的各种循环值都席卷键。

输出结果:
phone: 1
fax: 2
cell: 3
phone: 555-4444
fax: 555-3333
cell: 760-1234

凭借{foreachelse}标志在一直不结果时模板输出”None
found”字样。

{* 在列表甘休时扩张一个档期的顺序标志 *})
{foreach from=$items key=part_id item=prod name=products}
   <a href=”#{$part_id}”>{$prod}</a>{if
$smarty.foreach.products.last}<hr>{else},{/if}
{foreachelse}
   … content …
{/foreach}  

<table>
{foreach from=$items key=myId item=i name=foo}
{if $smarty.foreach.foo.index % 5 == 0} {* $smarty.foreach.foo.index 对
5 求余 *}
<tr><th>Title</th></tr>
{/if}
<tr><td>{$i.label}</td></tr>
{/foreach}
</table>

{foreach}
用于像循环访谈四个数字索引数组同样循环访谈三个关联数组,与仅能访问数字索引数组的{section}差别,{foreach}的语法比
{section}的语法轻便得多,不过作为三个折衷方案也仅能用来单个数组。每一个{foreach}标志必须与关闭标志{/foreach}成对现身。

依据{foreachelse}标识在尚未结果时模板输出”None found”字样。

.first
时下 foreach 循环第壹次实行时 first 被设置成 true。
例如:

<ul>
<li>1000</li>
<li>1001</li>
<li>1002</li>
</ul>

{foreach}
用于像循环访谈贰个数字索引数组一样循环访问四个提到数组,与仅能访谈数字索引数组的{section}不一致,{foreach}的语法比
{section}的语法轻巧得多,可是作为四个折衷方案也仅能用来单个数组。每个{foreach}标志必须与关闭标志{/foreach}成对出现。

复制代码 代码如下:

.index包括当前数组索引,从零起首。

上例将出口:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图