聪明地如何获取数组的特殊名称的值?

时间:2019-10-08 14:31:46

标签: php smarty

我有一个如下所示的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

4 个答案:

答案 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')}">

这是您想要实现的目标吗?