我有一个如下所示的PHP数组:
$list = array(
array(
'name'=>'switch',
'value'=>'cisco'
),
array(
'name'=>'switchport',
'value'=>'2'
)
);
如何一步一步获得name='switch'
或name='switchport'
的物品?
因为它在smarty
模板中,所以有img
<img src="http://localhost:8080/api.php?switch={$my_need_switch_value}&switchport={$my_need_switchport_value}">
那么,我如何一步一步从my_need_switch_value
中获得$list
?
答案 0 :(得分:1)
您可以使用{assign}
来分配新变量。
{foreach from=$list item=customfield}
{if $customfield.name=='switch'}
{assign var=switch value=$customfield.value}
{elseif $customfield.name=='switchport'}
{assign var=portname value=$customfield.value}
{/if}
{/foreach}
然后您可以直接使用$switch
和$switchport
。
答案 1 :(得分:0)
您尝试过{$list.0}
还是{$list.0.name}
吗?如果我了解您的需求。
答案 2 :(得分:0)
您是否尝试过以下方法:
$list[0].name
$list[1].name
我不相信有一个拍摄。您至少应该迭代数组并将该值与所需的值进行比较。
答案 3 :(得分:0)
如果我正确理解了您想要的内容,则可以使用要查找的数组和名称作为参数创建一个函数,然后循环遍历并获取其值。像这样:
$list = [
[
'name'=>'switch',
'value'=>'cisco'
],
[
'name'=>'switchport',
'value'=>'2'
]
];
function getValue($array, $name) {
foreach($array as $key => $value) {
if($value['name'] == $name) {
echo $value['value'];
}
}
}
如果使用“ switch”作为名称参数调用它,它将回显“ cisco”,如果将其更改为“ switchport”,则将回显“ 2”。然后,您可以像这样在结构上使用它:
<img src="http://localhost:8080/api.php?switch={getValue($list,'switch')}&switchport={getValue($list,'switchport')}">
这是您想要实现的目标吗?