Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
count() / array_sum() / range()対応: PHP 4(2000)
配列の要素数や合計値を取得したり、連番の配列を生成したり、配列をランダムに操作する関数です。
構文
// 配列の要素数を返します。 count(配列, モード); // 配列の値の合計を返します。 array_sum(配列); // 配列の値の積を返します。 array_product(配列); // 連番の配列を生成します。 range(開始値, 終了値, ステップ); // 配列の要素をランダムに並べ替えます。 shuffle(配列); // 配列からランダムにキーを取得します。 array_rand(配列, 取得数);
関数一覧
| 関数 | 概要 |
|---|---|
| count($array, $mode) | 配列の要素数を返します。第2引数に『COUNT_RECURSIVE』を指定すると多次元配列の全要素を再帰的にカウントします。 |
| array_sum($array) | 配列の値の合計を返します。数値以外の値は0として扱われます。 |
| array_product($array) | 配列の値の積を返します。空の配列の場合は『1』を返します。 |
| range($start, $end, $step) | 開始値から終了値までの連番を含む配列を生成します。文字列にも対応しています。 |
| shuffle($array) | 配列の要素をランダムに並べ替えます。キーは0から振り直されます。 |
| array_rand($array, $num) | 配列からランダムに1つ以上のキーを返します。 |
サンプルコード
<?php
// 配列の要素数を取得します。
$fruits = ['りんご', 'みかん', 'ぶどう', 'もも'];
echo count($fruits); // 『4』と出力されます。
// 配列の合計を計算します。
$prices = [150, 80, 300, 200];
echo array_sum($prices); // 『730』と出力されます。
// 配列の積を計算します。
$nums = [2, 3, 4];
echo array_product($nums); // 『24』と出力されます。
// 平均値を計算します。
$scores = [85, 92, 78, 95, 88];
$average = array_sum($scores) / count($scores);
echo $average; // 『87.6』と出力されます。
// 連番の配列を生成します。
$one_to_ten = range(1, 10);
print_r($one_to_ten); // 『1』から『10』までの配列が生成されます。
// ステップを指定して偶数の配列を生成します。
$evens = range(2, 10, 2);
print_r($evens); // 『2, 4, 6, 8, 10』の配列になります。
// アルファベットの配列を生成します。
$alphabet = range('A', 'F');
print_r($alphabet); // 『A, B, C, D, E, F』の配列になります。
// 配列をランダムに並べ替えます。
$cards = range(1, 5);
shuffle($cards);
print_r($cards); // ランダムな順序になります。
// 配列からランダムに要素を選びます。
$colors = ['赤', '青', '緑', '黄', '紫'];
$key = array_rand($colors);
echo $colors[$key]; // ランダムに1つの色が出力されます。
// 複数のキーをランダムに選びます。
$keys = array_rand($colors, 2);
print_r($keys); // ランダムに選ばれた2つのキーが返されます。
概要
『count()』は配列だけでなく『Countable』インターフェースを実装したオブジェクトにも使用できます。PHP 7.2以降では、配列やCountableオブジェクト以外を渡すと警告が発生するため注意してください。エイリアスとして『sizeof()』もありますが、『count()』のほうが一般的に使用されています。
『array_sum()』は連想配列の値にも対応しており、数値以外の値は0として扱われます。『array_sum()』と『count()』を組み合わせることで、簡単に平均値を計算できます。
『range()』は数値だけでなく文字列の連番も生成できます。ステップに負の値を指定すれば降順の配列も作成可能です。
『shuffle()』は元の配列を直接変更する破壊的な関数で、キーは0から振り直されます。『array_rand()』は要素そのものではなくキーを返すため、値を取得するには返されたキーで配列にアクセスする必要があります。配列の集約処理については『array_reduce()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。