在数组中搜索并返回prestshop中smarty的父节点


search in array and return parent node with smarty in prestashop

大家好。

我正在写一个模块,我现在在。tpl中,我正在试图检索我正在显示的当前页面的语言id。实际上,我正在编写一些测试代码,以确定是否有所有可以使用的元素。

我到目前为止有这个:

id={$smarty.get.id_category}
id_language = {$smarty.get.id_lang}
{assign var=my_lang_id value=$smarty.get.id_lang}
my_lang_id= {$my_lang_id}    
languages = {$languages|@print_r}

实际上,我得到:

id=7
id_language = 6
my_lang_id= 6
languages = Array
(
    [0] => Array
        (
            [id_lang] => 1
            [name] => English (English)
            [active] => 1
            [iso_code] => en
            [language_code] => en-us
            [date_format_lite] => m/j/Y
            [date_format_full] => m/j/Y H:i:s
            [is_rtl] => 0
            [id_shop] => 1
            [shops] => Array
                (
                    [1] => 1
                )
        )
    [1] => Array
        (
            [id_lang] => 6
            [name] => Italiano (Italian)
            [active] => 1
            [iso_code] => it
            [language_code] => it
            [date_format_lite] => d/m/Y
            [date_format_full] => d/m/Y H:i:s
            [is_rtl] => 0
            [id_shop] => 1
            [shops] => Array
                (
                    [1] => 1
                )
        )
    [2] => Array
        (
            [id_lang] => 7
            [name] => English (United Kingdom)
            [active] => 1
            [iso_code] => gb
            [language_code] => gb
            [date_format_lite] => d/m/Y
            [date_format_full] => d/m/Y H:i:s
            [is_rtl] => 0
            [id_shop] => 1
            [shops] => Array
                (
                    [1] => 1
                )
        )
    [3] => Array
        (
            [id_lang] => 8
            [name] => English (Australia)
            [active] => 1
            [iso_code] => au
            [language_code] => en-au
            [date_format_lite] => d/m/Y
            [date_format_full] => d/m/Y H:i:s
            [is_rtl] => 0
            [id_shop] => 1
            [shops] => Array
                (
                    [1] => 1
                )
        )
    [4] => Array
        (
            [id_lang] => 9
            [name] => English (Canada)
            [active] => 1
            [iso_code] => ca
            [language_code] => en-ca
            [date_format_lite] => d/m/Y
            [date_format_full] => d/m/Y H:i:s
            [is_rtl] => 0
            [id_shop] => 1
            [shops] => Array
                (
                    [1] => 1
                )
        )
)
我的问题是……我想从这个数组中检索我当前语言的iso_code,以及给定语言的iso_code和language_code…假设我想要"它","它"作为我当前的语言id为6,然后我想获得语言的id_lang与iso_code = en,这是可能的吗?还是我走错方向了?

下面是使用smarty进行比较的方法:

PHP测试文件

$languages = array();
$languages[] = array('id_lang' => 1, 'iso_code' => 'en', 'language_code' => 'en-us');
$languages[] = array('id_lang' => 6, 'iso_code' => 'it', 'language_code' => 'it');
$languages[] = array('id_lang' => 7, 'iso_code' => 'gb', 'language_code' => 'gb');
$smarty->assign('languages',$languages);

Smarty test file:

{assign var=my_lang_id value=6}
{foreach $languages as $lang}
    {if $lang.id_lang eq $my_lang_id}
       {$lang.iso_code} {$lang.language_code}
    {/if}
{/foreach} 

我希望这是你需要的,因为我根本不懂prestshop