从smarty中的数组中获取密钥

时间:2012-11-30 12:13:51

标签: php smarty

如果我有一个如下所示的数组:

$my_array = array(2) { ["mykey"]=> int(2) ["mysecondkey"]=> int(3) }

如何获得第一个元素的键值?。

到目前为止,我知道我可以$my_array[0],但我如何获得第一把钥匙?我想避免做foreach。

谢谢!

4 个答案:

答案 0 :(得分:1)

这是关联数组(字符串键)。直接使用密钥名称:

$my_array["mykey"];

阅读more here
要使用array_keys

提取密钥
$my_array = array(2) { ["mykey"]=> int(2) ["mysecondkey"]=> int(3) }
$keys = array_keys($my_array); //0 => "mykey", 1 => "mysecondkey"

答案 1 :(得分:0)

您可以使用array_keys()获取阵列键的列表:

$keys = array_keys($my_array);
echo $keys[0]; // outputs "mykey"

如果你想在Smarty中执行此操作,可以使用以下代码输出数组的第一个键:

{foreach from=$my_array key=my_key item=i name=my_array}
  {if $smarty.foreach.my_array.first}{$my_key}{/if}
{/foreach}

答案 2 :(得分:0)

foreach($my_array as $key=>$_val){
    echo $key;
    break;
}

答案 3 :(得分:0)

array_keys()将获取数组中的所有键,而这将获得第一个键,而不会迭代所有其他键并忽略数组的其余部分。

这是一个假循环,因为破坏将在第一次迭代时退出,所以你实际上并没有为所有值做一个真正的foreach。

foreach($my_array as $firstKey=>$unused) {
    break;
}
echo($firstKey);

如果您需要某项功能,可以使用:

function first_key($arr) {
    foreach($my_array as $firstKey=>$unused) {
        return $firstKey;
    }
}

该函数再次在第一次迭代时返回,因此您不会对所有元素进行“真正的”预测。