smarty获取二维数组中的某个值

#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.html

smarty语法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.indexes

smarty手册里面的“基本语法”就写得很清楚

<{$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