PHPの配列定義
配列 皆さんに次の 2 つの點(diǎn)を覚えてもらう前に:
1. 配列は複數(shù)の異なるタイプのデータを格納でき、複合データタイプです。
2. 配列の英語名は array です。最も簡単な配列宣言を?qū)Wびましょう。
それでは、簡単なレビューをしてみましょう:
<?php $shu = array(1 , 1.5 , true ,'天王蓋地虎,小雞燉蘑菇'); echo '<pre>'; var_dump($shu); echo '</pre>'; ?>
上記の例では、以下を格納していることがわかりました:
1. 整數(shù)
2. 浮動(dòng)小數(shù)點(diǎn)
3. ブール値
4. 文字列
注: メイン上記の例の echo pre タグの目的は、データをそのまま出力することで、形式がより見やすく明確になることです。
var_dump() を使用して出力し、効果を確認(rèn)します:
上の図を注意深く見ると、次の特徴がわかります:
1.array(size = 4) 説明: 4要素
2.0 => int 1 int は整數(shù)を意味し、1 は整數(shù)値であることがわかっています。では、前の 0、1、2、3 および => は何を意味するのでしょうか?
3. 最新の 0、1、2、3 は値の読み取り識(shí)別番號(hào)を表し、これを添え字またはキー (英語: key) と呼びます
4. => はシンボルの標(biāo)準(zhǔn)名です。キーと値に対応します。したがって、後で 0=> int 1 を見ると、次のように言えます。 添字アクセサー 0 は、整數(shù)型の 1 に対応します。
5. 配列要素のキーと値のペアとも呼びます。要素はキーと値のペアの組み合わせです。
そうそう! 配列はいくつかのルールがあるため、習(xí)得するのは非常に簡単なようです。
上記の例では、配列の宣言メソッドの 1 つであるインデックス配列の宣言を?qū)g際に誤って完了してしまいました。
いわゆるインデックス配列: 添え字がすべて整數(shù)である配列です。
インデックス配列の添え字は0から始まる必要がありますか?
答え: この質(zhì)問は実際には真実ではありません。インデックス配列は必ずしも 0 から始まるわけではありません。
どうして0から始められないのでしょうか?
答え: 上記で學(xué)んだ小さな知識(shí)を活用する必要があります。これはキーと値の対応関係です。書き始めましょう。
<?php $kele = array('只有不斷努力才能博得未來',10 => 'NoAlike', 'PHP中文網(wǎng)' , '去PHP中文網(wǎng)學(xué)PHP', 19 => '鳳姐和芙蓉我都愛' , '楊冪我最愛'); //打印顯示$kele echo '<pre>'; var_dump($kele); echo '</pre>'; ?>
上の例では、誤ってインデックス配列を書き込んでしまいました。ただし、インデックス配列の添え字は 0 からではなく、10 から始まります。
ただし、上記の例では、コードをより美しく書くことができ、形式が明確になると感じます。
<?php $kele = array( '只有不斷努力才能博得未來', 10 => 'NoAlike', 'PHP中文網(wǎng)' , '去PHP中文網(wǎng)學(xué)PHP', 19 => '鳳姐和芙蓉我都愛' , '楊冪我最愛' ); //打印顯示$kele echo '<pre>'; var_dump($kele); echo '</pre>'; ?>
これで分かりやすくなりましたか? 1 つの行が配列の値に対応します。
コードを?qū)g行して効果を見てみましょう:
上記の効果を通じて、ルールを要約してみましょう:
1. インデックス配列が添字を強(qiáng)制的に宣言しない場合、添字は 0 から始まります。 (最初の配列の値: 継続的な努力によってのみ未來を勝ち取ることができます。この値の添字は 0 です)。
2. 添え字を指定した場合、添え字は指定した値になります。たとえば、添え字 10 と添え字 19 は私が指定した値です。
3. 値 (NoAlike など) に添字の指定が強(qiáng)制される場合 (添字は 10)。添字が指定されていない場合は、その後に追加される値 (PHP 中國語 Web サイト)。添え字の成長パターンは最大 +1 です。
例: 私が大好きなフォン姉妹と芙蓉姉妹の下付き文字は 19 です。最後に追加しました: ヤン?ミーは私のお?dú)荬巳毪辘扦?。その添字は自?dòng)的に 11 に増加します。
知らず知らずのうちに、インデックス配列の作成方法を?qū)W習(xí)しました。素晴らしいですよね?本當(dāng)に幸せですね!
インデックス配列に要素を追加する
インデックス配列の作成を?qū)W習(xí)したら、次にインデックス配列の追加、変更、削除を?qū)W習(xí)します。
<?php $minren = array( '楊冪', '王珞丹', '劉亦菲', '黃圣依' ); //如何向這$minren這個(gè)數(shù)組中增加元素呢 //猜猜范冰冰的下標(biāo)是多少? $minren[] = '范冰冰'; $minren[100] = '范爺'; //它的下標(biāo)又為幾呢? $minren[] = '李晨'; ?>
概要:
1. インデックス配列に要素を追加するには、配列変數(shù)名 []、配列変數(shù)名 [キー値] の 2 つのメソッドを使用して要素を追加します
2. キー値の成長規(guī)則前と同じです 同じルールです。これらはすべて、最大値に 1 を加算するという原則に基づいています。
インデックス配列から要素を削除します
また、先ほどの配列を例として取り上げます:
<?php $minren = array( '楊冪', '王珞丹', '劉亦菲', '黃圣依', '范冰冰' ); //假設(shè)我不喜歡:黃圣依,如何將黃圣依給刪掉掉呢? //如果刪除掉后范冰冰的下標(biāo)為多少呢? //如果在后面再追加一個(gè)元素,會(huì)填掉:“黃圣依”留下來的空嗎? unset($minren[3]); $minren[] = '金星'; echo '<pre>'; var_dump($minren); echo '</pre>'; ?>
効果を見てください:
1. unset を使用して変數(shù)を削除し、値を削除します配列內(nèi)で。
2. 中央の値を削除しても、後続の添字は自動(dòng)的に前に進(jìn)みません。ただし、元の値は何でも構(gòu)いません
3. 値の 1 つを削除しても、新しく追加された値は元の位置を置き換えず、最大値に 1 を加算する原則に従います。
値の変更
最も簡単な作成、追加、削除を?qū)Wびます。値を変更する方法は誰でも理解できると思います。
<?php $minren = array( '楊冪', '王珞丹', '劉亦菲', '黃圣依', '范冰冰' ); $minren[5] = '范爺'; $minren[2] = '亦菲,不要嫁給韓國人好嗎?'; echo '<pre>'; var_dump($minren); echo '</pre>'; ?>
上記のコードを?qū)g行し、出力して結(jié)果を確認(rèn)します。
1. 変數(shù)名 [キー] = 新しい値を使用します。配列內(nèi)の値が変更されます。
インデックス付き配列を宣言するその他の方法
上記の例を通じて、配列を宣言する方法を?qū)Wびました。配列を宣言する他の方法を?qū)Wびましょう。
1. 以前に宣言されていない変數(shù)を直接使用し、変數(shù)名の後に括弧で囲んで配列を宣言します。
<?php //直接寫一個(gè)變量后面加上中括號(hào),聲明變量 $qi[] = '可口可樂'; $qi[10] ='百事可樂'; echo '<pre>'; var_dump($qi); echo '</pre>'; ?>
2. 毎回array()を書くのは面倒なので、その方が簡単です。
<?php $minren = [ '楊冪', '王珞丹', 100 => '劉亦菲', '黃圣依', '范冰冰' ]; echo '<pre>'; var_dump($minren); echo '</pre>'; ?>
上記は他の 2 つの書き方です。もちろん、好きな方を使っても構(gòu)いません。
連想配列
インデックス配列が適切に変換され、連想配列が表示されます。配列內(nèi)に文字列の配列が存在する限り、それは連想配列です。
上記の例を通じて、配列の添字は文字列のみであることがわかりました。もちろん、これでは私のニーズを満たすことができません。
イーソン?チャンの値に対応する添字ハンサムを宣言したいとします。それは確かに私のニーズを満たしていません。
それでは連想配列を宣言しましょう。これは、インデックス付き配列の宣言と同じ方法で行われます。ただし、文字列の添字を指定する必要があり、キーと値の対応を使用する必要があるという點(diǎn)が異なります。
<?php //聲明一下關(guān)聯(lián)數(shù)組 $rela = array( '帥' => '陳奕迅', '很帥' => '黃曉明', '灰?;页?#39; => '寧澤濤', '有男人味的大叔' => '吳秀波', ); //再來玩玩簡潔聲明 $drink = [ '美' => '鳳姐', '很美' => '芙蓉姐姐', 'verymei' => '楊冪', '心中滴女神呀' => '華妃', 100 => '孫儷', '娘娘', ]; // 輸出 $rela echo '<pre>'; var_dump($rela); echo '</pre>'; // 輸出$drink echo '<pre>'; var_dump($drink); echo '</pre>'; ?>
最終結(jié)果がどのようになるかを?qū)g験してみましょう:
実験を通じて次のことがわかります:
1. 連想配列をキー名 => 値として宣言します
2. 連想配列では、配列の要素にインデックスを付ける
3. 関連する配列內(nèi)のインデックス配列の要素が添字なしで宣言された後も、最大値 + 1 の原則が引き続き使用されます。 (上の図の値が Sun Li と Empress の 2 つの要素であることに注目してください)。
連想配列の追加、削除、修正
<?php $drink = [ '美' => '鳳姐', '很美' => '芙蓉姐姐', 'verymei' => '王濤', '心中滴女神呀' => '楊瀾', 100 => '孫儷', '娘娘', ]; //追加方式與索引數(shù)組是一樣的 $drink['ynj'] = '伊能靜'; //輸出試試 echo '<pre>'; var_dump($drink); echo '</pre>'; //刪除一個(gè)試試 unset($drink['verymei']); echo '<pre>'; var_dump($drink); echo '</pre>'; //將芙蓉姐姐 改成:心里美才是真的美 $drink['很美'] = '心里美才是真的美'; echo '<pre>'; var_dump($drink); echo '</pre>'; ?>
先ほどの実験を試してみると、操作方法はインデックスの操作方法と同じであることがわかります。ただ添え字の読み方が少し違うだけです。
連想配列を宣言するその他の方法
<?php $drink['nf'] = '農(nóng)夫山泉'; $cocacola = '可口可樂'; //當(dāng)然可以是變量喲 $drink['kl'] = $cocacola; $data = array( 'kl' => $cocacola, ); echo '<pre>'; var_dump($drink); echo '</pre>'; ?>
上記の例を通じて、連想配列では、配列を使用せずに変數(shù)の直後に括弧を追加することもできることがわかりました。括弧內(nèi)に文字列添字を挿入すると、成功が宣言されます。
後から変數(shù)を挿入する例は文字列を変數(shù)にするだけですが、もちろん問題ありません。
配列への配列の挿入
配列は整數(shù)、浮動(dòng)小數(shù)點(diǎn)、文字列に挿入できます。
もちろんです。
配列を?qū)W習(xí)するとき、このような名詞のグループを定義しました。
1. 1 次元配列 配列內(nèi)には他の配列はなく、いくつかの単純な変數(shù)または値のみが含まれます。
2. 2次元配列に単層配列または複數(shù)の配列が挿入されます
3. 3次元配列では、配列(A)に配列(B)が挿入され、別のレベルが挿入されます配列 (C) を B 配列に追加すると、これを 3 次元配列
4 と呼びます。3 次元を超えるものは多次元配列と呼ばれます。
注: 他の配列をインデックス配列と連想配列の両方に挿入して、配列を多次元にすることができます。
1 次元のみの 1 次元配列を宣言しましょう。インデックス作成と関連付けは両方とも可能です。この操作は誰でもよく知っています。
<?php //一維的索引數(shù)組 $data = [1 , 2 , 3 , 4 , 10 => 250]; //一維的關(guān)聯(lián)數(shù)組 $rela = [ 'beijing' => '北京', 'shanghai' => '上海', 'tj' => '天津', ]; echo '<pre>'; var_dump($rela); echo '</pre>'; echo '<pre>'; var_dump($data); echo '</pre>'; ?>
1 次元配列については誰もがよく知っており、必要なのは配列を宣言することだけです。 2 次元にするのは難しくなく、配列に 1 つ以上の配列を挿入するだけです。 2 次元をよく學(xué)べば、多次元もよく學(xué)べます。
えー実行して効果を見てみましょう:
変數(shù) person が配列型であることがわかりました。要素は 3 つあります (size=3)。
最初の要素はofficeで、文字列「office」に対応します。
2番目の要素は配列です。この配列には4つの要素があり、値は次のとおりです。 、祖父母。
3 番目の要素は jiaotong で、これも 4 つの要素を含む配列で、値は自転車、オートバイ、車、飛行機(jī)です。
わかりました。2 次元のステートメントは適切です。形式を正しく記述し、配列を配列に挿入するようにしてください。
それではアクセス方法:おじいちゃんとお父さんの2つの価値観は何ですか?
<?php $person = array( 'office' => '辦公室', //注意:插入第一個(gè)數(shù)組喲 'family' => array( '爸爸', '媽媽', 'yeye' => '爺爺', 'nn' => '奶奶', ), //注意:又插入了一個(gè)平級(jí)的數(shù)組 'jiaotong' => array( '自行車', '摩托車', '汽車', '飛機(jī)', ), ); echo '<pre>'; var_dump($person); echo '</pre>'; ?>
次のように結(jié)果を見てみましょう:
上記の例では、2 次元配列へのアクセスは、前の添え字の読み取り方法に従って順番に下方向に読み取るだけであることがわかります。
まず変數(shù)を記述し、角括弧內(nèi)に添字ファミリーを記述してから、アクセスする要素の添字を記述します。
3 次元配列の概念について説明したので、直接実験を開始して効果を確認(rèn)してみましょう:
<?php $person = [ 'office' => '辦公室', //注意:插入第一個(gè)數(shù)組喲 'family' => [ '爸爸', '媽媽', 'yeye' => '爺爺', 'nn' => '奶奶', ], //注意:又插入了一個(gè)平級(jí)的數(shù)組 'jiaotong' => [ '自行車', '摩托車', '汽車', '飛機(jī)', ], ]; //訪問“爸爸”這什值 echo $person['family'][0]; echo '<br />-----華麗麗的分割線------<br />'; //訪問“爺爺”這什值 echo $person['family']['yeye']; echo '<br />-----華麗麗的分割線------<br />'; //訪問“汽車”這什值 echo $person['jiaotong'][2]; ?>
実行して効果を確認(rèn)してみましょう:
説明:
2 つあります変數(shù) $area の下の配列。1 つは中國用、もう 1 つは米國用です。
上海、湖北省、天津、北京、広東省を china 配列に挿入します。北京と広東もまた別の配列だ。北京と広東の 2 つの配列には異なる要素があります。
米國のワシントン、サンフランシスコ、ニューヨークを配列に挿入します。ニューヨークの下には、ニューヨークの下のいくつかの地區(qū)を表す別の配列があります。
つまり、3次元配列とは、配列(A)を配列に挿入し、Aの配列に配列を挿入することです。
次に內(nèi)部の値を読み取る方法を見てみましょう。
<?php $area = array( 'china' => array( '上海', '湖北', '天津', '北京' => array( 'hd' => '海淀', '朝陽', '房山', 'cp' => '昌平', ), '廣東' => array( '深圳', '廣州', '佛山', 'dg' => '東莞', ), ), 'usa' => array( '華盛頓', '舊金山', '紐約' => array( '曼哈頓區(qū)', '皇后區(qū)', '布魯克林區(qū)', ), ), ); echo '<pre>'; var_dump($area); echo '</pre>'; ?>
上記を通じて、配列を?qū)W習(xí)するのは難しくないことがわかりました。
多次元配列を?qū)W習(xí)する際の難しさ:
形式に注意し、各次元の改行とインデントを整理してください。間違いを犯すのは簡単ではありません。
【注意事項(xiàng)】
配列要素間の區(qū)切り文字はカンマです。配列に配列を挿入する際、最後にセミコロン(;)を書かないでください