検索
ホームページバックエンド開発PHPチュートリアルPHP配列関数の知識まとめ_phpスキル

この記事では、参考のために php 配列関数の基本的な知識を共有します。具体的な内容は次のとおりです。

配列 配列は非常に重要なデータ型です。他のデータ型と比較すると、これは構造体に似ており、この構造体には一連の値を格納できます。配列は 1 つの変数名に多くの値を格納でき、添字を参照することで値にアクセスできます。
php には、次の 3 つの配列型があります。
インデックス付き配列 - 数値インデックスを持つ配列
連想配列 - 指定されたキーを持つ配列
多次元配列 - 1 つ以上の配列を含む配列

1. 配列を作成する

配列(キー => 値)

1. インデックス配列を作成する

array() 関数を使用して配列を宣言します。 php は、比較的柔軟で便利な弱い型指定言語です。配列の要素値を直接指定することもできます。キー値は必要ありません。インデックスは自動的に割り当てられます (インデックスは 0 から始まります)。
例:

array("1" => "百度","2" => "阿里","3" => "腾讯");
或者是不使用键值:
array("百度","阿里","腾讯");
当然也可以写成:
$arr[0] = "百度";
$arr[1] = "阿里";
$arr[2] = "腾讯";

2. 連想配列を作成する

連想配列はインデックス配列と似ていますが、インデックス配列のキー名のような数値のみを指定できる点が異なります。数値、文字列、および混合形式を使用できます。配列が連想配列かどうかを判断する基準is: array 数値ではないキー名が存在するかどうか。いいえ、関連しています。

array("ロビン・リー" => "百度","ジャック・マー" => "アリババ","馬化騰" => "テンセント");

3. 多次元配列

array(array(),array()) 2 次元配列

配列の長さを取得する - count() 関数

<?php
$arr = array("百度","阿里","腾讯");
echo count($arr);
?> //结果返回3(说明数组中有三个元素)

2. 配列の走査

配列内の要素の値を出力します。インデックス配列の場合は for と foreach が一般的に使用され、連想配列の場合は foreach が一般的に使用されます。 print_r() 関数を使用してループの後に結果を出力するか、var_dump() 関数を使用します。

1. インデックス配列を走査する

インデックス配列のすべての値を走査して出力するには、次のように for、foreach(array_expression as value)、foreach(arrayexpressionaskey => $value) ループを使用できます。

for ループを使用する

<?php
$arr = array("百度","阿里","腾讯");
$arrlen = count($arr);//获取数组的长度
for ($i=0; $i <$arrlen ; $i++) { 
  $data[] = $arr[$i]; 
}
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($data);

印刷結果は次のように表示されます。
配列
(
[0] => 百度
[1] => アリ
[2] => テンセント

foreach ループを使用
します。

<?php
$arr = array("百度","阿里","腾讯");
foreach ($arr as $value) {
  $data[] = $value;
}
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($data);//打印结果和上面一样

注: データの後に配列記号 [] があります。なぜですか?

2. 連想配列を走査する

連想配列のすべての値を走査して出力するには、次のように foreach (array_expression as key=>value) ループを使用できます。

<?php
$arr = array("李彦宏" => "百度","马云" => "阿里","马化腾" => "腾讯");
foreach ($arr as $key => $value) {
  $data[$key] = $value;
}
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($data);

印刷結果は次のようになります。

array
(
  [李彦宏] => 百度
  [马云] => 阿里
  [马化腾] => 腾讯
)

気づきましたか?この時、データ[$key]以降は何になるのでしょうか? [] の代わりに
1 つは数値連想配列で、もう 1 つは数値インデックス配列です。

3. 配列の要素を追加および削除する

配列要素の末尾に
を追加します array_push(array,value1,value2…) 関数は、最初のパラメーターの配列の末尾に 1 つ以上の要素 (プッシュ) を追加し、新しい配列の長さを返します。
この関数は、array[]=value への複数の呼び出しと同等です。

<?php
$arr = array("百度","阿里","腾讯");
array_push($arr,"知乎","微博");
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
//打印结果显示:
array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
  [4] => 微博
)

配列要素の先頭に追加します
array_unshift(array,value1,value2,value3…) 関数は、新しい要素を配列に挿入するために使用されます。新しい配列の値は配列の先頭に挿入されます。

<?php
$arr = array("百度","阿里","腾讯");
array_unshift($arr,"知乎","微博");
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
//打印结果显示:
array
(
  [0] => 知乎
  [1] => 微博
  [2] => 百度
  [3] => 阿里
  [4] => 腾讯
)

配列要素の末尾を削除
array_pop(array) 関数は、配列から最後の要素を削除します。

<?php
$arr = array("百度","阿里","腾讯");
array_pop($arr);
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
打印结果显示:
array
(
  [0] => 百度
  [1] => 阿里
)

配列要素の先頭を削除
array_shift(array) 関数は、配列内の最初の要素を削除し、削除された要素の値を返します。

<?php
$arr = array("百度","阿里","腾讯");
array_shift($arr);
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
打印结果显示:
array
(
  [0] => 阿里
  [1] => 腾讯
)

配列から重複した値を削除します
array_unique(array) 関数は、配列から重複する値を削除し、結果の配列を返します。

<?php
$arr = array("百度","阿里","腾讯","百度","微博");
$data = array_unique($arr);
echo "<pre class="brush:php;toolbar:false">";
print_r($data);
打印结果显示:
array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [4] => 微博
)

4. 配列要素の配置

配列内に存在する値を検索します
in_array(search,array,type) は、指定された値が配列内に存在するかどうかを確認します。
指定された値の検索が配列 array 内に存在する場合は true を返します。 3 番目のパラメーターが true に設定されている場合、関数は要素が配列内に存在し、指定された値と同じデータ型を持つ場合にのみ true を返します。パラメータが配列内に見つからない場合、関数は false を返します。

<?php
$arr = array("百度","阿里","腾讯");
while (in_array("百度", $arr)) {
  echo "已经找到";
  break;
} //输出已经找到

条件に基づいて配列から値を削除します: array_slice(array,start,length,preserve)
開始が必要です。数値。取得する要素の開始位置を指定します。 0 = 最初の要素。
値を正の数に設定すると、前から後ろに向かって取得されます。
値が負の数に設定されている場合、start の絶対値が後ろから前に取得されます。 -2 は、配列の最後から 2 番目の要素から開始することを意味します。

長さはオプションです。数値。返される配列の長さを指定します。
値が整数に設定されている場合は、その数の要素が返されます。
この値が負の数に設定されている場合、関数はサンプル配列の終わりから遠く離れたところでフェッチを終了します。
この値が設定されていない場合は、start パラメータで設定された位置から配列の末尾までのすべての要素が返されます。

<?php
$arr = array("百度","阿里","腾讯","知乎","微博");
$data = array_slice($arr,0,4);
echo "<pre class="brush:php;toolbar:false">";
print_r($data);
打印结果显示:
array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
)

array_splice(array,start,length,array) 関数は、選択した要素を配列から削除し、新しい要素に置き換えます。この関数は、削除された要素を含む配列も返します。

<?php
$arr1 = array("百度","阿里","腾讯");
$arr2 = array("知乎","微博");
array_splice($arr1,0,2,$arr2);
echo "<pre class="brush:php;toolbar:false">";
print_r($arr1);
打印结果显示:
array
(
  [0] => 知乎
  [1] => 微博
  [2] => 腾讯
)

5. 配列の結合、分割、比較

array_merge() 関数は配列をマージし、結合された配列を返します。結果の配列は、最初の入力配列パラメーターで始まり、後続の配列パラメーターが出現する順序で追加されます。

<?php
$arr1 = array("百度","阿里","腾讯");
$arr2 = array("知乎","微博");
$data = array_merge($arr1,$arr2);
echo "<pre class="brush:php;toolbar:false">";
print_r($data);
打印结果显示:
array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
  [4] => 微博
)

配列を再帰的に追加します
array_merge_recursive() 関数は array_merge() と同じで、2 つ以上の配列をマージして、結合された配列を形成できます。 2 つの違いは、入力配列内のキーが結果配列にすでに存在する場合、関数は異なるアプローチを取ることです。 array_merge() は、以前に存在していたキー/値のペアを上書きし、現在の入力配列内のキー/値のペアに置き換えます。一方、array_merge_recursive() は、2 つの値をマージして、元のキーを配列名として持つ新しい配列を形成します。 。その形式は次のとおりです:

$arr= array('one'=>'c', 'one'=>'b'); 
$arr1= array('three'=>'1', 'one'=>'2'); 
$arr2= array_merge_recursive($arr, $arr1); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr2); 
打印结果显示:
array
(
  [one] => array
    (
      [0] => b
      [1] => 2
    )

  [three] => 1
)

2 つの配列を結合します
array_combine() 関数は、送信されたキーと対応する値のセットで構成される新しい配列を次の形式で生成します。

$arr= array('a', 'b'); 
$arr1= array('1', '2'); 
$arr2= array_combine($arr, $arr1);
echo "<pre class="brush:php;toolbar:false">";
print_r($arr2); 
打印结果显示:
array
(
  [a] => 1
  [b] => 2
)

配列の共通部分を見つけます
array_intersect() 関数は、最初の配列に出現し、他のすべての入力配列に出現する値のみで構成されるキー保存配列を返します。その形式は次のとおりです。

$arr= array('a', 'b', 'c', 'd'); 
$arr1= array('a', 'b', 'e'); 
$arr2= array('a', 'f', 'd'); 
$arr3= array_intersect($arr, $arr1, $arr2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr3); 
打印结果显示:
array
(
  [0] => a
)

注: array_intersect() は、2 つの要素が同じデータ型を持つ場合にのみ等しいとみなします。

連想配列の共通部分を見つけます
array_intersect_assoc() は、比較の際に配列のキーも考慮する点を除いて、基本的に array_intersect() と同じです。したがって、最初の配列に出現し、他のすべての入力配列にも出現するキーと値のペアのみが結果配列に返されます。その形式は次のとおりです。

$arr= array('a'=>'a', 'b'=>'b', 'c'=>'c', 'd'=>'d'); 
$arr1= array('a'=>'a', 'c'=>'b', 'e'); 
$arr2= array('a'=>'a', 'b'=>'f', 'd'=>'b'); 
$arr3= array_intersect_assoc($arr, $arr1, $arr2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr3); 
打印结果显示:
array
(
  [a] => a
)

連想配列の違いを見つける
関数 array_diff_assoc() は基本的に array_diff() と同じですが、比較するときに配列のキーも考慮するため、最初の配列にのみ現れ、他の入力配列には現れないキーと値のペアが返される点が異なります。 . 結果配列に含まれます。その形式は次のとおりです。

$arr= array('a'=>'a', 'b'=>'b', 'c'=>'c', 'd'=>'d'); 
$arr1= array('a'=>'a', 'b'=>'b', 'e'=>'e'); 
$arr3= array_diff_assoc($arr, $arr1); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr3); 
打印结果显示:
array
(
  [c] => c
  [d] => d
)

その他の便利な配列関数
キーのランダムなセットを返します。 array_rand() 関数は、配列内の 1 つ以上のキーを返します。その形式は次のとおりです:

$arr= array('a'=>'a', 'b'=>'b', 'c'=>'c', 'd'=>'d'); 
$arr1= array_rand($arr, 2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr1);
打印结果显示:
 array
(
  [0] => c
  [1] => d
) //每次刷新显示的结果都不一样

配列内の値を合計します
array_sum() 関数は、配列内のすべての値を加算し、次の形式の最終合計を返します。

$arr= array('a', 32, 12, 'b'); 
$count= array_sum($arr); 
echo "<pre class="brush:php;toolbar:false">";
print_r($count); 

印刷結果は次のようになります。
44

配列に他のデータ型 (文字列など) が含まれている場合、これらの値は無視されます。

配列を分割します
array_chunk() 関数は、配列を多次元配列に分解します。多次元配列は、size 要素を含む複数の配列で構成されます。その形式は次のとおりです。

$arr= array('a', 'b', 'c', 'd'); 
$arr1= array_chunk($arr, 2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr1); 

印刷結果は次のようになります。

array
(
  [0] => array
    (
      [0] => a
      [1] => b
    )

  [1] => array
    (
      [0] => c
      [1] => d
    )

)

配列の処理時に呼び出すことができる関数は次のとおりです

array_filter(*array*,*callbackfunction*);
array_intersect_uassoc(*array1*,*array2*,*array3*...,*myfunction*)
array_intersect_ukey(*array1*,*array2*,*array3*...,*myfunction*)
array_reduce(*array*,*myfunction*,*initial*)
array_walk(*array*,*myfunction*,*userdata*...)
……

以上がこの記事の全内容です。php プログラミングを学習する皆さんの参考になれば幸いです。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPアプリケーションをより速くする方法PHPアプリケーションをより速くする方法May 12, 2025 am 12:12 AM

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

PHP依存性インジェクション:コードのテスト可能性を改善しますPHP依存性インジェクション:コードのテスト可能性を改善しますMay 12, 2025 am 12:03 AM

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

PHPパフォーマンスの最適化:データベースクエリの最適化PHPパフォーマンスの最適化:データベースクエリの最適化May 12, 2025 am 12:02 AM

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)

簡単なガイド:PHPスクリプトで電子メールを送信します簡単なガイド:PHPスクリプトで電子メールを送信しますMay 12, 2025 am 12:02 AM

phpisusededemingemailsduetoitsbuilt-inmail()functionandsupportiveLibrarieslikephpmailerandswiftmailer.1)usethemail()functionforbasicemails、butithaslimitations.2)emploadforadvancedfeatureSlikelikelivableabableabuses.3)雇用

PHPパフォーマンス:ボトルネックの識別と修正PHPパフォーマンス:ボトルネックの識別と修正May 11, 2025 am 12:13 AM

PHPパフォーマンスボトルネックは、次の手順で解決できます。1)パフォーマンス分析にXdebugまたはBlackfireを使用して問題を見つける。 2)データベースクエリを最適化し、APCUなどのキャッシュを使用します。 3)array_filterなどの効率的な関数を使用して、配列操作を最適化します。 4)bytecodeキャッシュ用のopcacheを構成します。 5)HTTP要求の削減や写真の最適化など、フロントエンドを最適化します。 6)パフォーマンスを継続的に監視および最適化します。これらの方法により、PHPアプリケーションのパフォーマンスを大幅に改善できます。

PHPの依存関係注射:簡単な要約PHPの依存関係注射:簡単な要約May 11, 2025 am 12:09 AM

依存関係(di)inphpisadesignpatternativats anducesclassodulencies、拡張測定性、テスト可能性、および維持可能性。

PHPパフォーマンスの向上:キャッシュ戦略と技術PHPパフォーマンスの向上:キャッシュ戦略と技術May 11, 2025 am 12:08 AM

cachingemprovesppperformancebystring of computationsorquickretrieval、還元装置の削減は、reducingerloadendenhancersponseTimes.efcectivestrategiesInclude:1)opcodecaching、compiledphpscriptsinmemorytoskipcompilation;

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません