如何在Smarty模板中使用PHP函数中的array_push。在Smarty模板中使用php函数
我想这
{assign var='out' value=array()}
{foreach $data['data'] as $dataInfo}
{$out|@array_push {$dataInfo['a']}:{$dataInfo['b']}}
{/foreach}
{$out|var_dump}
如何在Smarty模板中使用PHP函数中的array_push。在Smarty模板中使用php函数
我想这
{assign var='out' value=array()}
{foreach $data['data'] as $dataInfo}
{$out|@array_push {$dataInfo['a']}:{$dataInfo['b']}}
{/foreach}
{$out|var_dump}
你没有解释你想达到什么样的结果,实际上你应该做的,而这样的事情在控制器/模型比视图。
但是,如果在PHP中你有:
$smarty->assign(
'data',
array(
'data' => array(
array('a' => 'one', 'b' => 'two'),
array('a' => 'three', 'b' => 'four')
)
)
);
而且在Smarty的文件,你必须:
{assign var='out' value=array()}
{foreach $data['data'] as $dataInfo}
{append var='out' value=$dataInfo['a']}
{append var='out' value=$dataInfo['b']}
{/foreach}
{$out|var_dump}
输出将是:
array(4) { [0]=> string(3) "one" [1]=> string(3) "two" [2]=> string(5) "three" [3]=> string(4) "four" }
预期。
在这种情况下array_push
是不是最好的解决方案,因为它也将显示元素的个数,所以使用:
{assign var='out' value=array()}
{foreach $data['data'] as $dataInfo}
{$out|array_push:$dataInfo['a']}<br />
{$out|array_push:$dataInfo['b']}<br />
{/foreach}
{$out|var_dump}
你也会得到显示的数字:
1
2
3
4
array(4) { [0]=> string(3) "one" [1]=> string(3) "two" [2]=> string(5) "three" [3]=> string(4) "four" }
EDITED ANSWER ACCORDING TO COMMENT
我想显示像这样放置:a:b,c:d其中这些元素是| $ array [0] = Array('aa'=>'a','bb'=>'b')$ array [1] = Array('cc'=>'c','dd'=>'d “);
如果在PHP中你有:
$array = array();
$array[0] = Array('aa' => 'a', 'bb' => 'b');
$array[1] = Array('cc'=>'c', 'dd'=>'d');
$smarty->assign(
'data', $array
);
在Smarty的你应该使用:
{foreach $data as $dataInfo}
{$dataInfo|implode:':'}{if not [email protected]}, {/if}
{/foreach}
输出将是:
a:b, c:d
但它没有连接的问题无论如何,当你问及使用PHP函数array_push
在Smarty模板中
我想要像这样显示:a:b,c:d这里的元素是| $ array [1] =数组('cc'=>'c','dd'=>'数组'('a''='''','bb'=>'b') $ array [0] 'D'); – OsomA 2014-09-10 10:58:40
@OsomA你是什么意思?你说过你想把数据放入数组中。 'var_dump'函数只能以其格式显示数据。如果你想要简单的显示数据,你为什么要使用'array_push'?我不明白。你应该编辑你的问题并解释你想达到的目标,把原始的PHP数据(var_export'而不是'var_dump'格式)放在那里 – 2014-09-10 11:02:22
@OsomA看看编辑的答案 – 2014-09-10 11:10:19
为什么?当然,你应该在模型或控制器中做到这一点,但不是视图 – Steve 2014-09-10 09:50:23
我希望视图决定如何显示控制器,但这不是我的问题。我真的很想知道如何做到这一点 – OsomA 2014-09-10 09:53:56
在这里,您不是在决定如何显示,而是生成数据 - 通常是模型图层应该做的。 – zerkms 2014-09-10 09:55:44