PHPで配列のキーを取得する方法です。
array_keys()
で連想配列のキーはもちろん、通常の添字配列の自動で振られたキーも取得できます。
現在のポインタによってキーを1個だけ返すkey()
も併せてご紹介します。
目次
array_keys関数で配列のキーを取得
全てのキーを取得
1 2 3 |
$citys = array('kanagawa'=>'横浜','osaka'=>'大阪','fukuoka'=>'福岡'); array_keys($citys); |
[0]=>”kanagawa”,[1]=>”osaka”,[2]=>”fukuoka”
配列からキーだけを取得する場合、array_keys()
を使います。
array_keys(キーを取得したい配列);
取得されたキーには、自動で0から始まるキーが連番で振られ、取得したキーは値となります。
指定したキーのみ取得
array_keys()
は指定したキーのみを取得することもできます。
第二引数に、取得したいキーの値を指定します。
1 2 3 |
$citys = array('kanagawa'=>'横浜','osaka'=>'大阪','fukuoka'=>'福岡'); array_keys($citys, '横浜'); |
[0]=>”kanagawa”
取得したいキーを指定しても取得できません。値の方を指定します。
array_keys(キーを取得したい配列, 取得したいキーの値);
添字配列の自動連番キーを取得する
連想配列だけではなく、0から始まる自動連番が振られた添字配列のキーも取得できます。
1 2 3 |
$citys = array('横浜','大阪','福岡'); array_keys($citys); |
[0]=>0, [1]=>1, [2]=>2
自動連番の添字配列のキーも取得できました。
key関数で現在指している配列のキーを取得
内部ポインタが指しているキーを取得
現在ポインタが指している配列のキーをピンポイントで取得するのがkey()
です。
キーは1個しか取得しません。
1 2 3 |
$citys = array('kanagawa'=>'横浜','osaka'=>'大阪','fukuoka'=>'福岡'); key($citys); |
[0]=>”kanagawa”
array_keys()
と違うのは、現在指している配列1個だけを取得するところです。
ポインタを次に進めるにはnext()
を使います。
next関数でポインタを1個進める
現在ポインタが指しているキーの次のキーを取得するには、next()
を使います。
1 2 3 4 5 |
$citys = array('kanagawa'=>'横浜','osaka'=>'大阪','fukuoka'=>'福岡'); next($citys); key($citys); |
[1]=>”osaka”
next()
により、現在指していたポインタkanagawa
の次のosaka
が取得できました。
次に要素がない場合はfalse
を返します。
逆にポインタを一つ戻すprev()
もあります。
prev関数でポインタを1個戻す
1 2 3 4 5 6 7 |
$citys = array('kanagawa'=>'横浜','osaka'=>'大阪','fukuoka'=>'福岡'); next($citys); //1個進む prev($citys); //1個戻る key($citys); |
[0]=>”kanagawa”
1個進んで1個戻るので結局最初の位置kanagawa
にポインタがあります。
ページングやいろんなメニューに使えそうですね。
ちなみにkey()
ではなく、直接next()
やprev()
で出力すると、キーではなく値が取得されますので注意しましょう。
1 2 3 |
$citys = array('kanagawa'=>'横浜','osaka'=>'大阪','fukuoka'=>'福岡'); printf(next($citys)); |
大阪
※一部出力を考慮しないコードがありますが、分かりやすく概要を説明するためのものです。実際ブラウザに出力されないものもありますのでご了承ください。