[PHP-users 27416] Re: 多次元配列のキー確認方法について

okuyama@workgroup okuyama @ workgroup.jp
2005年 11月 8日 (火) 22:24:13 JST


おく@Workgroup です。

function existsArrayKey($strKey, $arrArray) {
	$ret = false;
	while ( list($key, $value) = each($arrArray) || $ret == false ) {
		$ret = $key === $strKey ? true : false;
		if (is_array($value) && ! $ret) {
			$ret = existsArrayKey($strKey, $value);
		}
		if ($ret) break;
	}
	return $ret;
} 

こんな感じで、再帰的に自関数を呼び出してはいかがでしょう?


> -----Original Message-----
> From: php-users-bounces @ php.gr.jp 
> [mailto:php-users-bounces @ php.gr.jp] On Behalf Of free @ k02.itscom.net
> Sent: Tuesday, November 08, 2005 9:30 PM
> To: PHP-users ML
> Subject: [PHP-users 27415] Re: 多次元配列のキー確認方法について
> 
> コジマと申します。
> 初投稿なので、投稿のやり方が間違っていたりしたらすみません。
> 
> > $ary['1']['a']['A'] = 'test'
> 
> // -----------------------------------------------
> // 関数名:array_check
> // 引数  :strKey   => チェックする配列のキー
> //         arrArray => チェックする配列
> //         例.$ary['1']['a']['A']ならば
> //             array_check("A",$ary['1']['a'])
> // 戻り値:true  : 存在する
> //         false : 存在しない
> // -----------------------------------------------
> function array_check($strKey,$arrArray){
>     if(is_array($arrArray) === false){
>         return false;
>     }
>     return array_key_exists($strKey,$arrArray);
> }
> 
> このような形ではいかがでしょうか?
> 引数一つでなんとかならないか考えてみたのですが思いつきませんでした。
> 
> 
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp 
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
> 
> 



PHP-users メーリングリストの案内