PHP 開発ノート シリーズ (9) - 配列 (1)
??? 最近プロジェクトに取り組んでいると、連想配列処理を使用することがよくあります。PHP には非常に便利で効率的な組み込みの配列処理関数がたくさんあることに気づきました。 「PHP開発ノートシリーズ(XAMPP+PhpEclipse+XDebug)」として 第9回「PHP開発ノートシリーズ(9) - 配列(1)」 、PHP 配列の関連操作を記録します。
??? 1. PHP 配列定義
??? Php の配列は、JAVA の Map の概念に似ています。配列内の要素には、キーと呼ばれる特別な識別子があり、各キーは値に対応します。したがって、キーと値の組み合わせが配列内の要素を構成します。 Php 配列の要素は比較的柔軟です。各要素は同じ型である必要はありません。たとえば、整数や文字列などにすることができます。
??? 2. PHP 配列の割り当て
???? Php キーは数値キー (数値) または連想キー (連想キー) です。数値キーは値と実際の関係はなく、配列内の値の位置のみを持ちますが、連想キーは値を指します。
?
$data[0] = '1st value'; $data[1] = '2nd value'; $data[2] = '3rd value'; $data['1st'] = '1st value'; $data['2nd'] = '2nd value'; $data['3rd'] = '3rd value'; echo $data[0]; echo $data['3rd'];
?
??? 3. Php の多次元配列
???? PHP 配列をチェックインして多次元配列を形成できます。次のように定義できます:
$data['school1']['grade1'] = 'grade 1'; $data['school1']['grade2'] = 'grade 2'; $data['school1']['grade3'] = 'grade 3'; echo $data['school1']['grate1'];
?
??? 4. 配列を作成します
??? 上記のメソッドを使用して配列を作成することに加えて、次のようにコンストラクター array() を使用して配列を作成することもできます。
// 创建空数组 $data = array(); // 创建数值键非空数组 $numeric_data = array('1st value', '2nd value', '3rd value'); // 创建关联键非空数组 $map_data = array('1st'=>'1st value', '2nd'=>'2nd value', '3rd'=>'3rd value'); // 创建数组 $multi_map_data = array( 's1'=>array('g1'=>'grade1', 'g2'=>'grade2'), 's2'=>array('g3'=>'grade3', 'g4'=>'grade4') );
??? 5. list() を使用して配列 を抽出します
??? list() 関数は array() に似ていますが、1 回の操作で配列から複数の値を抽出し、同時に複数の変数に値を割り当てることができます。この構造は、データベースまたはファイルから情報を抽出する場合に特に便利です。
??? たとえば、ファイル school.txt は、ファイルの各行に研究名、学年、クラス、生徒名などの情報を読み取る必要があります。 など、「、」で区切ります。
?file:array-list.txt School1,grade1,class1,jack School1,grade1,class2,danny School1,grade2,class1,mike School1,grade2,class2,lily School2,grade1,class1,dick School2,grade1,class2,mary School2,grade2,class1,johny School2,grade2,class2,smart ... ...
??? list() を使用して、単純なループを通じて各行を読み取り、データの各部分を変数に割り当て、必要に応じてデータをフォーマットして出力できます。コードは次のとおりです。 ?
?
file: array-list.php url: http://localhost:88/array/array-list.php <?php $fp = fopen('school.txt', 'r'); while ($line = fgets($fp, 1024)) { list($school, $grade, $class, $student) = explode(',', $line); echo 'School: '.$school.' | '; echo 'Grade: '.$grade.' | '; echo 'Class: '.$class.' | '; echo 'Student: '.$student.'<br/>'; } fclose($fp); ?>
??? 配列を使用する場合、特定の変数が配列であるかどうかを確認する必要がある場合があります。組み込み関数 is_array() は、変数が配列であるかどうかを判断し、配列である場合は TRUE を返し、そうでない場合は FALSE を返します。
?
?
file: is_array.php url: http://localhost:88/array/is_array.php <?php $arr = 1; $arr1 = array(); $arr2 = array('id'=>1); echo is_array($arr) ? 'TRUE' : 'FALSE'; echo '<br/>'; echo is_array($arr1) ? 'TRUE' : 'FALSE'; echo '<br/>'; echo is_array($arr2) ? 'TRUE' : 'FALSE'; echo '<br/>'; ?>
??? 配列を出力するには、foreach、for、while などを使用することができます。コードは次のとおりです。
?
file: output-array.php url: http://localhost:88/array/output-array.php <?php $data[0] = '1st value'; $data[1] = '2nd value'; $data[2] = '3rd value'; foreach ($data as $d) { echo $d.'<br/>'; } echo '======================'.'<br/>'; $i = 0; while ($i < count($data)) { echo $data[$i].'<br/>'; $i++; } echo '======================'.'<br/>'; for ($i = 0; $i < count($data); $i++) { echo $data[$i].'<br/>'; } echo '======================'.'<br/>'; $map['1st'] = '1st value'; $map['2nd'] = '2nd value'; $map['3rd'] = '3rd value'; foreach ($map as $key => $value) { echo $key.':'.$value.'<br/>'; } ?>
???今日はこれを書いて、また別の日に続きます。