[PHP-users 824] Re: 配列の添え字

Kiyotaka Doumae php-users@php.gr.jp
Mon, 23 Jul 2001 15:57:33 +0900


堂前です。

In message "[PHP-users 821] 配列の添え字",
Hiroshi Morita wrote...
》tyuu です。
》お世話になります。
》
》PHP Version 4.0.5 を利用しています。
》どなたか配列の添字を知る方法を知りませんか?

単に連想配列の添え字を抜き出した配列を得るのなら、

$keyarray = array_keys($array);

というのが使えます。
http://www.php.net/manual/ja/function.array-keys.php


ループにするのなら(PHP4前提)

// その1
reset ($array);
while (list($key,$value) = each ($array)){
	print "$key => $value\n";
	:
}

// その2
foreach ($array as $key => $value){
	print "$key => $value\n";
	:
}

// その3
foreach (array_keys ($array) as $key){
	print "$key => $array[$key]\n";
	:
}


のいずれかが使えると思います。

上記の3例はほぼ等価ですが、eachとarrayは完全に同じ動作をするわけでは
ないので以下のところで違いを確認しておくといいと思います。
http://www.php.net/manual/ja/control-structures.foreach.php

・reset($array)の要不要
・ループの中で変数を変更したときの元の配列への反映

その3は一見無駄ですが、多次元連想配列を使うときに役に立ちます。
(多分……もっとスマートな方法があるかもしれないですが)


_DON (堂前 清隆) ______________________v(. .)v_
mailto:don@don.am        
http://www.don.am/~don/    『ムチャじゃないもん!』
PGP fingerprint:                        (青山素子)
A920 DE27 3C98 A091 FD1E  D09D 2C4F 291E 50BC 4FD4
--------------------------------------------------