-
array_values()関数を使用する方法:
function isAssociativeArray($array) { return array_values($array) !== $array; } $array = [1, 2, 3]; if (isAssociativeArray($array)) { echo "配列は連想配列です。"; } else { echo "配列は連想配列ではありません。"; }
この方法では、
array_values()
関数を使用して元の配列と値だけの配列を比較します。連想配列の場合、キーの順序が維持されるため、元の配列と値だけの配列は異なると判断されます。 -
array_diff_key()関数を使用する方法:
function isAssociativeArray($array) { return array_diff_key($array, array_keys($array)) !== []; } $array = ["a" => 1, "b" => 2, "c" => 3]; if (isAssociativeArray($array)) { echo "配列は連想配列です。"; } else { echo "配列は連想配列ではありません。"; }
この方法では、
array_diff_key()
関数を使用して元の配列とキーだけの配列の差を計算します。連想配列の場合、差が空でないと判断されます。 -
array_filter()関数を使用する方法:
function isAssociativeArray($array) { return count(array_filter(array_keys($array), 'is_string')) > 0; } $array = ["a" => 1, "b" => 2, "c" => 3]; if (isAssociativeArray($array)) { echo "配列は連想配列です。"; } else { echo "配列は連想配列ではありません。"; }
この方法では、
array_filter()
関数を使用して配列のキーをフィルタリングし、文字列のキーの数をカウントします。文字列のキーが1つ以上存在する場合、配列は連想配列と判断されます。
これらの方法を使用して、PHPで配列が連想配列ではないかをチェックすることができます。適宜、自分のコードに組み込んで使ってみてください。