-1

重複の可能性:
PHP 配列: 配列が連想か数値かを確認する良い方法は?

私の 1 つの関数の 1 つのパラメーターは、次の型の値を取ります。

null,

'*','',

array('domain1','domain2'),

array('domain1'=>'*','domain2'=>'group1','domain3'=>array('group1','group2')),

パラメータの型を特定しようとしているときに問題が発生しました。特に、それが配列であるかどうかとその主要なパラメーターを決定する際に。

パラメータの型は基本的にどのように決めることができますか?

4

4 に答える 4

0

関数を使用is_arrayして、パラメーターが配列であるかどうかを確認できます。詳細を示すコードを教えてください。

于 2013-01-18T15:13:43.783 に答える
0

PHPのgettype関数はあなたが望むことをするはずです。特定のタイプをチェックするには、is_arrayのようなis_*関数を使用できます。あなたはここでそれらについての情報を見つけることができます。

于 2013-01-18T15:13:54.103 に答える
0

PHPには、このための機能がたくさんあります。

これらのほとんど(すべてではないにしても)を使用した検索を次に示します。

is主に(is_array()、、、)is_null()で始まる関数を使用しますisset()

于 2013-01-18T15:14:05.603 に答える
0

型を決定するための簡単なライナーが必要な場合は、おそらく配列をまったく使用したくないでしょう。データを特定のクラスのオブジェクトに取り込む方が便利な場合があります。

instanceof次に、またはを使用してオブジェクト タイプをテストできますis_a()

オブジェクトを使用すると、データ構造に追加機能を提供することもできます。foreach()そして、それを Iterator にすることで、配列として (たとえば などで) 扱うことができます。

配列に固執することを好み、キー付き配列と数値配列を区別したい場合は、この質問への回答を確認できます。

最良の答えは、次の行に沿った短い関数でした。

function array_isassoc(array $array) {
    return array_keys($array) !== range(0,count($array)-1);
}

trueこれは、キー配列またはfalse数値配列に対して返されます。

これはおそらく使用できる最も信頼性の高い方法ですが、数値配列があり、キーの番号を付け直さずに要素を削除すると機能しなくなります。

于 2013-01-18T15:18:47.160 に答える