arrayなどで配列を作成するときに指定するインデックスは型の自動変換(キャスト)が行われます。
たとえば、次のように配列を定義します。
<?php $ar = array( 3 => "数値の3", "3" => "文字の3", 3.14 => "円周率", ); print_r($ar); ?>
この配列を出力すると、文字の「3」や円周率の3.14は3にキャストされます。同じインデックスが上書きされて、最後に定義された「円周率」のみが残ります。
○実行結果
Array ( [3] => 円周率 )
これは、配列のインデックスの中で整数(integer)にキャストできるものは整数にキャストされ、小数点以下を含むインデックスは整数に切り捨てられるためです。
同じようにtrueまたはfalseのbool型は1または0に変換されます。
<?php $ar = array( true => "有効", false => "無効", ); print_r($ar); ?>
○実行結果
Array ( [1] => 有効 [0] => 無効 )
詳しくは、以下のページをご覧ください。
▼参考
PHPリファレンス(配列)