 |
 |
 |
 |
 |
| |
|
|
 |
 |
 |
 |
 |
 |
| 글쓴사람 | 마르크젝 |
| 글쓴시간 | 2007년 11월 12일 오후 2시 46분 23초 |
| 제목 | 이와 같은 배열을 assign 시켰다면.. |
 |
 |
안녕하세요. 관리자님..
오랜만에 왔는데.. 또 질문 들고 왔네요...;;
Array
(
[aaaa] => Array
(
[0] => Array
(
[index_key] => 0
[cid] => 68
.....
.....
[bbbb] => Array
(
[0] => Array
(
[index_key] => 0
[cid] => 98
.....
.....
이와같이 처음 배열이 [0][1]로 시작되는게 아니라..
특정한 [aaaa]나 [bbbb]식으로 구성이 되었다면,
어떤식으로 tpl에서 루프 구문을 넣어줘야 할지 막막합니다.
특히나, aaaa와 bbbb의 인덱스 키는 고정되어 있지 않는 상황이라..
애매합니다....
바쁘실텐데.. 자꾸 귀찮게 해드리네요...
에고.. ^^;; 송구스럽지만, 가르침좀 주시겠습니까..
|
 |
 |
| 관리자 |
마르크젝님 안녕하세요.
간만에 방문해주셔서 감사합니다.
그런데, 위의 배열을 $arr 이라고 했을 때, $arr 을 루프돌리고 싶으신 건가요 아니면 $arr['aaaa'] 를 루프돌리고 싶으신 건가요. 'aaaa' 나 'bbbb' 에도 요소가 여러 개 있는데 이것도 루프로 돌리려는 것인가요.
$arr 를 루프돌리려면 key_ , value_ 키워드를 이용하시면 됩니다.
{@ arr}
{.key_}
{@ .value_}
{..index_key}
{..cid}
{/}
{/}
해보시기 바랍니다. |
| 07-11-13 12:40 |
 |
|
 |
| 마르크젝 |
관리자님 답변 감사합니다.
제가 원하던 답변이네요..
한가더 해결하지 못하는 점이 생겼습니다.
예를들어..
for (...) {
for (...) {
....
}
$tpl->assign(array(
"템플릿키"_vars = number_format(.......
......
......
));
}
*.tpl 에서
"템플릿키"_vars 를 출력하려면, 어떻게 해야 하나요..
compile 풀더 밑에 파싱되어 있는 파일 열어서 연구좀 해봐도
잘안되네요.....
이해가 되셨으리라 믿습니다..
수고하세요~!!!!
좋은 하루 되시구요...
|
| 07-11-14 11:35 |
 |
|
 |
| 마르크젝 |
"템플릿키"는 위의 {.key_} 가 되겠네요..
|
| 07-11-14 11:36 |
 |
|
 |
| 관리자 |
이해 못하겠는데요.
무슨 상황인지 데이터가 어떻게 주어져 있고 원하는 출력결과가 무엇이라고 이야기를 안해주시면 모를 수 밖에 없습니다.
다만 보이는 것만 답변드리면,
템플릿 내에서 템플릿변수와 문자열을 붙여서 다시 템플릿변수화할 수 있는 방법은 없습니다.
대신 배열을 이용한다거나 다른 해결책을 찾아 보시기 바랍니다. |
| 07-11-14 19:45 |
 |
|
 |
| 마르크젝 |
Array
(
[aaaa] => Array
(
[0] => Array
(
[index_key] => 0
[cid] => 68
[price] => 22000
.....
.....
[1] => Array
(
[index_key] => 0
[cid] => 62
[price] => 47000
.....
.....
[2] => Array
(
[index_key] => 0
[cid] => 168
[price] => 11000
.....
.....
[bbbb] => Array
(
[0] => Array
(
[index_key] => 0
[cid] => 98
[price] => 52000
.....
.....
[1] => Array
(
[index_key] => 0
[cid] => 12
[price] => 47000
.....
.....
[2] => Array
(
[index_key] => 0
[cid] => 128
[price] => 19000
.....
.....
위의 [aaaa], [bbbb] 의 각각의 [price]요소의 총계를 구하고,
나아가서 총계를 토대로 다른 계산도 하려고 합니다..
배열을 이용해서 하라는 건 맞는 말씀이지만,
이미 aaaa 와 bbbb 요소를 출력하는 부분에서
{@ arr}
{.key_}
{@ .value_}
{..index_key}
{..cid}
{/}
//총계를 따로 배열로 구성하였다 하더라도
//이부분에 총계가 나와야 하는데, 어떻게 출력이 가능할까요?
{/}
정말 제 머리는 돌대가리인가 봅니다. ㅠㅠ
|
| 07-11-16 10:32 |
 |
|
 |
| 관리자 |
많이 안해 본 것은 이래저래 생각이 안날 때가 많죠. 아무나 붙잡고 질문하다가 생각날 때도 있고 그렇습니다.
디비에서 데이터를 가져왔다면 처음부터 저렇게 주어져 있지는 않았을 텐데, 어쨌든 저렇게 주어져 있다고 치구요.
위 데이터구조를 다음과 같이 바꿔줄 수 있을 겁니다.
Array
(
[0] => Array (
[name] => 'aaaa',
[price_tot] => ........,
[items] => Array (
[0] => Array
(
[index_key] => 0
[cid] => 68
[price] => 22000
.....
.....
[1] => Array
(
[index_key] => 0
[cid] => 62
[price] => 47000
.....
.....
[2] => Array
(
[index_key] => 0
[cid] => 168
[price] => 11000
.....
.....
)
),
[1] => Array (
[name] => 'bbbb',
[price_tot] => ........,
[items] => Array (
[0] => Array
(
[index_key] => 0
[cid] => 98
[price] => 52000
.....
.....
[1] => Array
(
[index_key] => 0
[cid] => 12
[price] => 47000
.....
.....
[2] => Array
(
[index_key] => 0
[cid] => 128
[price] => 19000
.....
),
...
)
처음 배열이 $arr1, 바뀐 배열이 $arr2 라면,
$arr2=array();
foreach ($arr1 as $k=>$v) {
$el = array(
'name' => $k,
'price_tot' => 0,
'items' => array()
);
while ($item = array_shift($v)) {
$el['price_tot']+= $item['price'];
$el['items'][] = $item;
}
$arr2[]=$el;
}
$tpl->assign('arr2', $arr2);
템플릿에서는
{@ arr2}
{.name}
{.price_tot}
{@ .items}
{..index_key}
{..cid}
{..price}
{/}
{/}
이렇게 해볼 수 있습니다.
|
| 07-11-16 15:58 |
 |
|
 |
 |
 |
 |
|
|
|
|
|