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

PHP配列関数の知識まとめ_phpスキル

WBOY
リリース: 2016-05-16 08:59:46
オリジナル
3850 人が閲覧しました

この記事では、参考のために 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 プログラミングを学習する皆さんの参考になれば幸いです。

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