php - 在smarty中,从 array 获取密钥

  显示原文与译文双语对照的内容
0 0

如果我有一个类似于这样的array:


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

如何获得第一个元素的key-value。

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

谢谢!

时间: 原作者:

0 0

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

 
$my_array["mykey"];

 

在这里阅读更多。
要提取密钥,请使用 array_keys:


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

原作者:
0 0

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

原作者:
0 0

你可以使用 array_keys() 获取 array的键列表:


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

如果要在Smarty中执行这里操作,可以使用下面的代码输出 array 密钥的第一个:


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

原作者:
0 0

array_keys() 将获得 array 中的所有密钥,而这将获得第一个键,而不会循环访问所有它的他键。

这是一个假循环,因为中断将在第一次迭代中退出,所以实际上你不会实际执行真实的foreach 。


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

如果需要函数,可以使用这里函数:


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

函数在第一次迭代时返回,因此你不会在所有元素上执行"真实"foreach 。

...