Smarty : 연관 배열 인덱스를 참조하는 방법
문제
Array $imagelist:
Array (
[additional] => Array (
[count] => 2
[image] => Array (
[nokia_e61_1.jpg] => Array (
[name_body] => nokia_e61_1
[name_ext] => jpg
)
[nokia_e61_2.jpg] => Array (
[name_body] => nokia_e61_2
[name_ext] => jpg
)
[nokia_e61_3.jpg] => Array (
[name_body] => nokia_e61_3
[name_ext] => jpg
)
[nokia_e61_4.jpg] => Array (
[name_body] => nokia_e61_4
[name_ext] => jpg
)
)
)
[main] => nokia_e61
)
가치 nokia_e61_1.jpg
보관됩니다 {$getvars.imagename}
.
나는 썼다 {$imagelist.additional.image.`$getvars.imagename`.name_body}
그러나 그것은 작동하지 않습니다.
도와주세요.
해결책
확인하십시오 {$imagelist.additional.image[$getvars.imagename].name_body}
공장
다른 팁
나는 이것에 대해 Smarty를 좋아하지 않지만 그럼에도 불구하고 나는 그것을 사용합니다. 다음은 추출물 양식 문서입니다
{$foo.$bar} <-- display variable key value of an array, similar to PHP $foo[$bar]
그것을 할 수 있으려면
{assign var='key' value=$getvars.imagename}
{$imagelist.additional.image.$key.name_body}
도움이되기를 바랍니다
배열을 재구성하면 내부 '이미지'오프셋의 키인 어쨌든 중복됩니다.
$imagelist = array('additional' => array('count' => 2,
'image' => array(
array('name_body' => 'nokia_e61_1',
'name_ext' => 'jpg'),
array('name_body' => 'nokia_e61_2',
'name_ext' => 'jpg'),
array('name_body' => 'nokia_e61_3',
'name_ext' => 'jpg'),
array('name_body' => 'nokia_e61_4',
'name_ext' => 'jpg')
)
),
'main' => 'nokia_e61'
);
수치 적으로 인덱싱 된 이미지를 제공합니다.
array(2) {
["additional"]=>
array(2) {
["count"]=>
int(2)
["image"]=>
array(4) {
[0]=>
array(2) {
["name_body"]=>
string(11) "nokia_e61_1"
["name_ext"]=>
string(3) "jpg"
}
[1]=>
array(2) {
["name_body"]=>
string(11) "nokia_e61_2"
["name_ext"]=>
string(3) "jpg"
}
[2]=>
array(2) {
["name_body"]=>
string(11) "nokia_e61_3"
["name_ext"]=>
string(3) "jpg"
}
[3]=>
array(2) {
["name_body"]=>
string(11) "nokia_e61_4"
["name_ext"]=>
string(3) "jpg"
}
}
}
["main"]=>
string(9) "nokia_e61"
}
//and then the smarty bit
{$imagelist.additional.image[0].name_body}
{$imagelist.additional.image[1].name_body}
{$imagelist.additional.image[2].name_body}
{$imagelist.additional.image[3].name_body}
{php}echo $imagelist['additional']['image'][$getvars['imagename']]['name_body'];{/php}
제휴하지 않습니다 StackOverflow