Php 在数组中搜索并在prestashop中使用smarty返回父节点
大家好 我正在编写一个模块,目前在.tpl中,我正在尝试检索当前显示页面的语言id。实际上,我正在编写一些测试代码,以了解是否有所有的元素可以继续 到目前为止,我有:Php 在数组中搜索并在prestashop中使用smarty返回父节点,php,arrays,variables,smarty,prestashop,Php,Arrays,Variables,Smarty,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 = {$languag
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_代码,以及给定语言的iso_代码和语言_代码。。。假设我想用“it”,“it”,因为我当前的语言id是6,然后我想用iso_code=en获得语言的id_lang,这可能吗?或者我走错了方向?以下是使用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);
{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}
Smarty测试文件:
$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);
{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}
我希望这就是你需要的,因为我根本不了解普雷斯塔什