如果我有一个看起来像这样的数组:
$my_array = array(2) { ["mykey"]=> int(2) ["mysecondkey"]=> int(3) }
如何获得第一个元素的键值?
到目前为止,我知道我可以做到$my_array[0]
,但我如何获得第一把钥匙?我想避免做foreach。
谢谢!
这是关联数组(字符串键)。直接使用键名:
$my_array["mykey"];
在这里阅读更多
要提取密钥,请使用array_keys:
$my_array = array(2) { ["mykey"]=> int(2) ["mysecondkey"]=> int(3) }
$keys = array_keys($my_array); //0 => "mykey", 1 => "mysecondkey"
您可以使用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}
foreach($my_array as $key=>$_val){
echo $key;
break;
}
array_keys() 将获取数组中的所有键,而这将获取第一个键而不迭代所有其他键并忽略数组的其余部分。
这是一个假循环,因为 break 将在第一次迭代时退出,因此您实际上并没有对所有值进行真正的 foreach。
foreach($my_array as $firstKey=>$unused) {
break;
}
echo($firstKey);
如果你需要一个函数,你可以使用这个:
function first_key($arr) {
foreach($my_array as $firstKey=>$unused) {
return $firstKey;
}
}
该函数再次在第一次迭代时返回,因此您没有对所有元素进行“真正的” foreach。