0

如果我有一个看起来像这样的数组:

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

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

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

谢谢!

4

4 回答 4

1

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

$my_array["mykey"];

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

$my_array = array(2) { ["mykey"]=> int(2) ["mysecondkey"]=> int(3) }
$keys = array_keys($my_array); //0 => "mykey", 1 => "mysecondkey"
于 2012-11-30T12:16:22.360 回答
1

您可以使用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}
于 2012-11-30T12:18:06.123 回答
0
foreach($my_array as $key=>$_val){
    echo $key;
    break;
}
于 2012-11-30T12:20:18.867 回答
0

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。

于 2012-11-30T12:21:30.250 回答