글쓴사람 마르크젝
글쓴시간2007년 11월 20일 오후 3시 41분 51초
    제목안녕하세요~^^
아래 질문 했던 내용은..
그냥 우여곡절 끝에 해결 했습니다...
말씀하신 방법으로 하면 쉽게 해결 되겠지만..

질문중에 언급한 [aaaa]와 [bbbb]요소는 그룹으로써..
각각 n개의 요소들이 해당 그룹에 속해 있으며,
출력시 정렬이 필요해서 말씀하신 방법으론 좀 힘들더라구욥.....
제가 질문을 좀 어수선하고, 요점을 잡아내지 못해서 그런거 같네요;;;

에.. 다름이 아니라..

사용중 함수를 tpl_plugin 에 추가하고 *.tpl에서 유용하게 불러 쓰는 기능을
사용하려고 보니,

function include_()
{
   foreach (func_get_args() as $f) function_exists($f) or include dirname(__file__).'/tpl_plugin/function.'.$f.'.php';
}

여기에서 include_once 로 수정하면 더 좋을꺼 같아서욥...
보통 템플릿에서 함수를 바로 쓰기도 하지만,
템플릿 파일을 처리하는 모델단 PHP페이지에서도 사용이 필요해서
불러 쓰면 중복 오류가 날꺼 같네요..

그럼 수고하세요~
관리자 어쨌든 해결됐다니 다행이네요..

플러그인 함수 구조가 함수 한 개와, 대응하는 파일 한 개로 구성되어 있고, function_exists() 로 체크하기 때문에 include_once 하지 않아도 한 번만 인클루드됩니다.

다른 곳에서 꼭 사용해야 한다면 그곳에서도 function_exists() 로 체크하시거나 include_once 하시면 됩니다.
07-11-20 18:12
관리자 이야기를 좀 했다가, 제가 너무 많이 관여하는 것 같아서 지웠는데

마르크젝님 말씀을 읽어보면 "정렬이 필요할 때는 경우에 따라 배열을 원하는 구조로 바꾸기 어렵다" 가 되고.. 템플릿과 관련이 없지 않거든요.

일단은 쿼리문의 group by, order by 로 해결하면 좋겠지만 mysql 저버전에서 인덱스 문제라든가 서브쿼리가 안된다든가 등등의 이유로 php 쪽에서 해결해야 할 때도 있는데,

아래의 예제는 usort() 함수를 사용해서, 하위배열 items 를 price 로 내림차순 정렬을 한 것입니다. 그룹이든 총계든 추가적인 정렬도 할 수 있을 겁니다.

<?php

$a =Array (
   Array  (
       'group' => 'aaaa',
       'price_tot' => 80000,
       'items' => Array (
           Array
           (
               'index_key' => 0 ,
               'cid' => 68 ,
               'price' => 22000
            ),
           Array
           (
               'index_key' => 0 ,
               'cid' => 62 ,
               'price' => 47000
            ),
           Array
           (
               'index_key' => 0 ,
               'cid' => 168 ,
               'price' => 11000
            )
        )
   ),
   Array (
       'group' => 'bbbb',
       'price_tot' => 118000,
       'items' => Array (

           Array
           (
               'index_key' => 0 ,
               'cid' => 98 ,
               'price' => 52000
            ),
           Array
           (
               'index_key' => 0 ,
               'cid' => 12 ,
               'price' => 47000
            ),
           Array
           (
               'index_key' => 0 ,
               'cid' => 128 ,
               'price' => 19000
            )
        )
   )
);


foreach($a as $k=>$v) {

    usort($a[$k]['items'], 'usort_callback');

}

function usort_callback($x,$y) {

    return $x['price'] > $y['price'];
}

echo '<pre>';
print_r($a);
echo '</pre>';

?>
07-11-22 15:12
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com