概要
閲覧数:1383
投稿日:2015-11-23
更新日:2015-11-23
三次元配列の「三次元目要素数」だけをカウント
関数の中でstatic変数を宣言すると?
・その関数が初めて呼ばれた時にのみ初期化をし、それ以降は何度呼ばれても初期化処理をスキップしつつ、値を保持する
コード
$ary = array();//配列の初期化
$ary[0][0][0] = 'ブラウン';
$ary[0][1][0] = 'レッド';
$ary[0][2][0] = 'ブルー';
$ary[0][2][1] = 'スカイブルー';
$ary[1][0][0] = 'うちはサスケ';
$ary[1][0][1] = '奈良シカマル';
$ary[1][0][2] = '猿飛アスマ';
$ary[1][1][0] = '風魔小次郎';
$ary[1][1][1] = '霧風';
$ary[1][1][2] = '小龍';
$ary[1][3][0] = '影丸';
print_r($ary);
function child_count($ary=array()){
static $count = 0;
foreach($ary as $child){
if(is_array($child)){
child_count($child);
}else{
$count++;
}
}
return $count;
}
echo child_count($ary);結果
Array
(
[0] => Array
(
[0] => Array
(
[0] => ブラウン
)
[1] => Array
(
[0] => レッド
)
[2] => Array
(
[0] => ブルー
[1] => スカイブルー
)
)
[1] => Array
(
[0] => Array
(
[0] => うちはサスケ
[1] => 奈良シカマル
[2] => 猿飛アスマ
)
[1] => Array
(
[0] => 風魔小次郎
[1] => 霧風
[2] => 小龍
)
[3] => Array
(
[0] => 影丸
)
)
)
11