次のような配列がある場合:
$my_array = array(2) { ["mykey"]=> int(2) ["mysecondkey"]=> int(3) }
最初の要素のキー値を取得するにはどうすればよいですか?
これまでのところ、私にできることはわかっています$my_array[0]
が、最初のキーに到達するにはどうすればよいですか?foreachを避けたい。
ありがとう!
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}
これは連想配列 (文字列キー) です。キーの名前を直接使用:
$my_array["mykey"];
詳細はこちら
をご覧ください
キーを抽出するには、array_keysを使用します:
$my_array = array(2) { ["mykey"]=> int(2) ["mysecondkey"]=> int(3) }
$keys = array_keys($my_array); //0 => "mykey", 1 => "mysecondkey"
foreach($my_array as $key=>$_val){
echo $key;
break;
}
array_keys()は配列内のすべてのキーを取得しますが、これは他のすべてを繰り返したり、配列の残りの部分を無視したりせずに最初のキーを取得します。
ブレークは最初の反復で終了するため、これは偽のループです。したがって、実際にはすべての値に対して実際のforeachを実行しているわけではありません。
foreach($my_array as $firstKey=>$unused) {
break;
}
echo($firstKey);
関数が必要な場合は、次を使用できます。
function first_key($arr) {
foreach($my_array as $firstKey=>$unused) {
return $firstKey;
}
}
この場合も、関数は最初の反復で戻るため、すべての要素に対して「実際の」foreachを実行しているわけではありません。