判断手順: 1. array_keys() を使用して、元の配列のすべてのキー名を取得します。構文は「array_keys(array)」です。 2. array_filter() を使用して、配列をフィルタリングします。構文は次のとおりです。 "function f($v){return (is_string($v));}$res=array_filter($keys,"f");" は、文字列要素を含むフィルター配列を返します。 3. フィルター配列が空の配列。空の場合、その配列はインデックス配列です。
このチュートリアルの動作環境: Windows7 システム、PHP バージョン 8.1、DELL G3 コンピューター
php では、インデックス配列の添字( キー名) は数字で構成されます。配列内のキー名が数字でない場合、その配列は (インデックス配列ではなく) 連想配列になります。
したがって、配列がインデックス配列であるかどうかを判断するには、配列のキー名がすべて数値であるかどうかを判断するだけで済みます。
#実装手順:
#ステップ 1: array_keys() 関数を使用して、元の配列のすべてのキー名を取得しますarray_keys( ) 関数は、配列内のすべてのキーを含む新しい配列を返します。
array_keys(array,value,strict)
説明 | |
---|---|
必須。配列を指定します。 | |
オプション。キー値を指定すると、そのキー値に対応するキー名のみが返されます。 | #strict |
オプション。 value パラメータと一緒に使用されます。可能な値: true - 指定されたキー値を持つキー名を返します。種類によっては、数字の 5 が文字列「5」と同じではありません。 | false - デフォルト値。タイプに関係なく、数値 5 は文字列「5」と同じです。 <?php header('content-type:text/html;charset=utf-8'); $arr=array("r"=>"red",2,3,"hello",5,6); var_dump($arr); $keys=array_keys($arr); var_dump($keys); ?> |
ステップ 2: array_filter() 関数と is_string() 関数を使用して配列をフィルタリングするキー名の文字列要素を返します。 array
function f($v){ return(is_string($v)); } $res=array_filter($keys,"f"); var_dump($res);
は、文字列要素を含むフィルタリングされた配列を返します。ステップ 3: 判断配列が空の配列であるかどうかをフィルターします
$res==[]
空の場合、配列はインデックス配列です
空ではありません、配列です。インデックス配列ではありません。連想配列です。
# 実装コード:
<?php header('content-type:text/html;charset=utf-8'); function f($v){ return(is_string($v)); } function fun($arr){ $keys=array_keys($arr); $res=array_filter($keys,"f"); if($res==[]){ echo "数组是索引数组<br>"; }else{ echo "数组不是索引数组,是关联数组<br>"; } } $arr=array("r"=>"red",2,3,"hello",5,6); var_dump($arr); fun($arr); $arr=array(1,2,3,"hello",5,6); var_dump($arr); fun($arr); ?>
推奨学習: 「
PHP ビデオ チュートリアル>>
以上がPHPで配列がインデックス配列であるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。