如果我有一个如下所示的数组:
$my_array = array(2) { ["mykey"]=> int(2) ["mysecondkey"]=> int(3) }
如何获得第一个元素的键值?。
到目前为止,我知道我可以$my_array[0]
,但我如何获得第一把钥匙?我想避免做foreach。
谢谢!
答案 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;
}
}
该函数再次在第一次迭代时返回,因此您不会对所有元素进行“真正的”预测。