smarty获取二维数组中的某个值
发布于:2022-01-17 09:50:54
#1 S3P
数据有关联,如消息包含了一个用户信息就有一个二维数组user->array('nickname'=>'sdsdsd').这样的话在模板中$smarty.user.nickname不能获取吗。。。。我看手册中这种写法存在的。
<$smarty.foreach.msglist.index> |
<$message.title> |
<$message.author.nickname> |
<$message.ctime> |
阅读删除 |
代码中的author出这个改怎么写,求帮助谢谢!
2013-06-05 12:26:48
#2 jake
用$smarty.user.nickname当然不能获取,因为$smarty是保留变量
用$userinfo.user.nickname就可以。给个建议是理清一下对多维数组的思路,看看手册理解一下。
http://www.speedphp.com/thread-3744-1-1.htmlsmarty语法
http://www.speedphp.com/smarty/index.html
2013-06-05 12:30:34
#3 S3P
但是我这个并不是要循环输出二维数组中所有只是取它某个值而已,就像这样$message.author.nickname。
smarty手册中也有这个用法。或者jake兄给个做法就是获取一条消息同时包含用户信息嘛,输出消息的时候要输出对应用户名。。。这个是二维数组吧现在只需获取二维数组中用户的名称就OK了
2013-06-05 12:50:49
#4 jake
http://www.speedphp.com/smarty/language.variables.htmllanguage.variables.array.indexessmarty手册里面的“基本语法”就写得很清楚
<{$Contacts[2][0]}><{$Contacts.phone.cell}>
你可以通过下标来使用数组,和PHP语法一样。
还是继续建议好好看看手册,尤其是基本的一些语法。
2013-06-05 12:58:24
#5 S3P
jake我是使用的这个语法
[0] => Array
(
[id] => 3
[title] => hello
[content] => 我要定位置你看着办
[from] => 2
[ctime] => 2013-05-17 03:05:10
[state] => 0
[msg_to] => 3
[author] => Array
(
[id] => 2
[password] => 670b14728ad9902aecba32e22fa4f6bd
[nickname] => pinker
[email] => [email]506995714@qq.com[/email]
[phone] => 2147483647
[role] => cp_user
[match_count] => 0
)
)
模板获取代码
<$smarty.foreach.msglist.index> |
<$message.title> |
<$message.author.nickname> |
<$message.ctime> |
阅读删除 |
我要获取author中的nickname值,你能告诉我咋取吗,就这一点,谢谢了
2013-06-05 14:11:57
#6 jake
$messages[0]['author']['nickname']
分清楚在foreach情况下和直接获取的情况。你上面一边说不是循环里面获取,然后一边发循环的代码。估计你没想清楚。
2013-06-05 15:00:21
#7 S3P
感谢解决了通过[]取值而不是.
$message['author']['nickname']
成功获取,多谢jake多次的提醒:lol
2013-06-05 15:56:32