2014-12-01 1 views
0

코드스마티는 두 번째 "배열"에 대한 이상한 일이있다 PHP 세션 객체

{assign var=shipping_method value=$smarty.session.cart->sub_content} 
{$shipping_method|print_r} 
->{$shipping_method.products_name}<- 

출력

Array 
(
[customers_id] => 4 
[products_name] => Abholung 
[products_key] => shipping 
[products_key_id] => 2 
[products_model] => Abholung 
[products_quantity] => 
[products_price] => 0 
[products_tax_class] => 0 
[products_discount] => 
[type] => shipping 
[status] => 0 
[sort_order] => 
[shop_id] => 
) 
Array 
-><- 

의 배열 요소를 표시하지 않습니다. 하지만 어떻게 디버그하고 필요한 배열 요소에 액세스합니까?

감사합니다.

답변

0

나는 foreach를 사용하여 배열을 디버깅하고 해결책을 찾았습니다.

 {foreach key=key0 item=val0 from=$shipping_method} 
     {$key0}/{$val0} 
     {foreach key=key item=val from=$val0} 
     {$key}/{$val} 
     {if $key=='products_name'} 
     {assign var=shipping_method_name value=$val} 
     {/if} 
     {/foreach} 
     {/foreach} 

     {$shipping_method_name} 

윌 출력 :

    shipping/Array 
        customers_id/4 
        products_name/Abholung 
        products_key/shipping 
        products_key_id/2 
        products_model/Abholung 
        products_quantity/ 
        products_price/0 
        products_tax_class/0 
        products_discount/ 
        type/shipping 
        status/0 
        sort_order/ 
        shop_id/ 
        Abholung 

그래서, 원하는 값에 액세스하는 데,이 코드를 사용해야합니다 : 모든 배열 요소가 배열의 일부 "배송"아래에 나타납니다

{$shipping_method.shipping.products_name} 

문제가 해결되었지만 {$ shipping_method | print_r}에 "배송"하위 배열이 표시되지 않는 이유는 무엇입니까? 그것은 멋진 버그인가?