ホームページ > バックエンド開発 > PHPチュートリアル > PHP 開発ノート シリーズ (9) - 配列 (1)

PHP 開発ノート シリーズ (9) - 配列 (1)

WBOY
リリース: 2016-06-13 13:26:18
オリジナル
798 人が閲覧しました

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);

?>
ログイン後にコピー
??? 6. 変数が配列であるかどうかをテストします

??? 配列を使用する場合、特定の変数が配列であるかどうかを確認する必要がある場合があります。組み込み関数 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/>';
    
?>
ログイン後にコピー

??? 7. 出力配列

??? 配列を出力するには、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/>';
    }
    
?>
ログイン後にコピー

???今日はこれを書いて、また別の日に続きます。


?? この記事のアドレス: http://ryan-d.iteye.com/blog/1566123

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート