とぎぷろべい

包丁研ぎとプログラミングと米国株投資についてのなんやかんや

配列に使える関数について(PHP)

f:id:feci:20210727001932j:plain

PHP7

 

PHP7.4.1において配列に使える関数の一例についての解説です。

まずはcount関数について。

<?php

//①count関数と二次元配列
$aaa['ひらがな'= [
  'あいうえお',
  'かきくけこ',
  'さしすせそ',
  'たちつてと',
  'なにぬねの'
];

echo count($aaa). "\n";  //1


//②count関数と一次元配列
$bbb = [01234];
echo count($bbb). "\n";  //5


//③count関数と空の配列
$ccc = [];  //空の配列
echo count($ccc). "\n";  //0

count関数は変数に含まれるすべての要素、またはオブジェクトに含まれるなにかの数を数える関数です。

 

count関数の返り値は、引数に含まれる要素の数に相当する数値となっています。

またもし引数の値がNULLの場合は、count関数の返り値は0となります。

 

①のプログラムは2次元配列ですが、このような多次元配列の場合は、count関数は1次元目の値のみを参照します。

なので①の$aaaは1となります。

 

 

count関数の定形は以下のとおりです。

 

count(パラメータ);

 

 

array_unshift関数とarray_push関数について。

<?php

//①array_unshift関数で配列の先頭に値を加える
$aaa = [345];
array_unshift($aaa, 012); //3の前に0と1と2が順番に入る

foreach($aaa as $aaa2) {
  echo $aaa2. "\n";           //012345
}


//②array_push関数で配列の末尾に値を加える
$bbb = [012];
array_push($bbb, 345); //2の後ろに3と4と5が順番に入る

foreach($bbb as $bbb2) {
  echo $bbb2. "\n";        //012345
}

array_unshift関数は、1つ以上の要素を既に存在する配列の先頭に付け加えます。

array_push関数は、1つ以上の要素を既に存在する配列の末尾に付け加えます。

 

array_unshift関数もarray_push関数も、返り値を受け取る変数を用意する必要はありません。

この2つの関数は共に第1パラメータに指定された変数に処理結果を勝手に代入します。

 

なので①のプログラムも②のプログラムも、関数実行後の変数をforeach文を使ってそのままechoで出力してやると、関数処理後の値が表示されていることが確認できます。

 

 

array_unshift関数とarray_push関数の定形は、それぞれ以下のとおりです。

 

array_unshift(第1パラメータ, 第2パラメータ, 第2パラメータ);

array_push(第1パラメータ, 第2パラメータ, 第2パラメータ);

 

この関数の第2パラメータの数に制限はありません。

カンマで区切ればいくらでも要素の数を増やせます。

 

 

array_shift関数とarray_pop関数について。

<?php

//①array_shift関数で配列の先頭から値を取り出す
$aaa = ['あ''い''う''え''お'];
$bbb = array_shift($aaa);  //$aaaから0番目の値をぶっこ抜いて$bbbに代入

echo "$aaa[0] と $bbb\n";  //い と あ($aaaにはもう'あ'はない)


//②array_pop関数で配列の先頭から値を取り出す
$ccc = ['あ''い''う''え''お'];
$ddd = array_pop($ccc);  //$aaaから5番目(末尾)の値をぶっこ抜いて$bbbに代入

echo "$ccc[5] と $ddd\n";  // と お($cccの5番目にはもう値がない)

array_shift関数は、既存の配列から先頭の要素を1つ取り出します。

array_pop関数は、既存の配列から末尾の要素を1つ取り出します。

 

array_shift関数もarray_pop関数も、配列から取り出した値を返します。

なのでこの返り値を受け取るための変数は、用意する必要があります。

 

ちなみにこの関数のパラメータに指定した変数からは、取り出された先頭または末尾に存在したはずの値は削除されています。

この処理に関する返り値用の変数については、用意する必要はありません。

 

 

array_shift関数とarray_pop関数の定形は、それぞれ以下のとおりです。

 

array_shift(パラメータ);

array_pop(パラメータ);

 

 

implode関数とexplode関数について。

<?php

//①implode関数で配列の値を取り出して文字列にする
$aaa = ['あ''い''う''え''お'];
$bbb = implode(',', $aaa);  //$aaaの値を0番目から順番に取り出して','で区切ってつなげる

echo "$aaa[0] と $bbb\n";   //あ と あ,い,う,え,お


//②explode関数で値を配列にする
$ccc = 12345;
$ddd = 'あい(^o^)うえ(^o^)お';

$ccc2 = explode(3, $ccc);    //$cccの値を3で区切りつつ3を除外して配列にする
$ddd2 = explode('(^o^)', $ddd); //$dddの値を(^o^)で区切りつつ(^o^)を除外して配列にする

echo "$ccc2[0] と $ddd2[0]"//12 と あい

implode関数は、第2パラメータに指定した配列の値を0から順に第1パラメータで指定した値で区切りながら取り出して文字列にして返します。

explode関数は、第2パラメータで指定した値を第1パラメータで指定した値を除外しつつに配列にして返します。

 

implode関数とexplode関数は、第2パラメータに指定した変数の値を強制的に修正することはありません。

また、関数処理後の返り値を受け取るための変数の用意は必須です。

 

 

implode関数とexplode関数の定形は、それぞれ以下のとおりです。

 

implode(第1パラメータ, 第2パラメータ);

explode(第1パラメータ, 第2パラメータ);

 

 

以上です。