配列関数
- 関数一覧
-
array() /
array_chunk() /
array_keys() /
array_merge() /
array_pad() /
array_pop() /
array_push() /
array_reverse() /
array_search() /
array_shift() /
array_unshift() /
array_values() /
arsort() /
asort() /
count() /
each() /
end() /
in_array() /
krsort() /
ksort() /
list() /
natsort() /
next() /
prev() /
reset() /
rsort() /
sort()
- 機能一覧
-
配列を生成する /
ポインタが指す要素とキーを得る /
配列カーソル(ポインタ)の移動 /
複数の変数に値を代入する /
配列の要素数を得る /
配列を分割する /
配列のキー・要素を得る /
配列に配列を追加する /
配列の要素数を指定した数に埋める /
配列の要素を逆順にする /
配列に特定の値があるか調べる /
配列の要素を追加・削除する /
配列をソート(並べ替え)する
array()
- array array([mixed...])
- 配列を生成するための関数のようでいて言語構造です。
- 之に関する詳しい事は「PHPの基本」の「配列」のページをご覧下さい。
PageTop
each()
関数
- mixed each(array 配列)
- 「配列」内の、配列カーソル(ポインタ)が指す要素とそのキーを配列で返し、ポインタを次の要素へ移動する関数です。
- 返される配列は、「1」、「value」、「0」、「key」という4つのキーを持ち、「1」、「value」に要素を、「0」、「key」にキー名を格納しています。
- 「配列カーソル(ポインタ)」は、“配列内の処理対象(要素)を指すもの”です。
- ポインタが最後の要素に移動した場合、次以降は「FALSE」を返します。「reset()」関数でポインタを先頭に戻すなりしない限り、ポインタはどっかに行っちゃったままの状態です。
以下にサンプル。
<pre>
<?php
$animal_arr = array("dog", "hode" => "cat", "cow");
while($arr = each($animal_arr))
print_r($arr);
if(each($animal_arr) === false)
echo "END...<br />";
reset($animal_arr); //ポインタを先頭に戻す
if($arr = each($animal_arr))
print_r($arr);
/*出力結果
Array
(
[1] => dog
[value] => dog
[0] => 0
[key] => 0
)
Array
(
[1] => cat
[value] => cat
[0] => hode
[key] => hode
)
Array
(
[1] => cow
[value] => cow
[0] => 1
[key] => 1
)
END...
Array
(
[1] => dog
[value] => dog
[0] => 0
[key] => 0
)
*/
?>
</pre>
PageTop
まず、「配列カーソル(ポインタ)」は、“配列内の処理対象(要素)を指すもの”です。
next()
関数
- mixed next(array 配列)
- 「配列」のポインタを次の要素へ移動し、移動した先の要素を返します。
- それ以上移動できない場合は、「FALSE」を返します。
prev()
関数
- mixed prev(array 配列)
- 「配列」のポインタを前の要素へ移動し、移動した先の要素を返します。
- それ以上移動できない場合は、「FALSE」を返します。
end()
関数
- mixed end(array 配列)
- 「配列」のポインタを最後の要素へ移動し、移動した先の要素を返します。
reset()
関数
- mixed reset(array 配列)
- 「配列」のポインタを先頭の要素へ移動し、移動した先の要素を返します。
以下にサンプル。
<pre>
<?php
$animal_arr = array("dog", "hode" => "cat", "cow");
echo next($animal_arr)."<br />";
echo prev($animal_arr)."<br />";
echo end($animal_arr)."<br />";
echo reset($animal_arr);
/*出力結果
cat
dog
cow
dog
*/
?>
</pre>
PageTop
list()
- void list(mixed...)
- 複数の変数に値を代入するための関数のようでいて言語構造です。
- この関数(のようなもの)に配列を代入しようとすると、引数に指定したそれぞれの変数に配列の要素が順に代入されます。
- 引数に指定した変数の数と配列の要素数が異なると、変数の数の方が多い場合は残りの変数には何も代入されず、配列の要素数の方が多い場合は残りの要素は代入されません。
- また、引数に変数を指定せず、「,(コンマ)」のみで区切って記述した場合は、指定しなかった所は代入されず(代入先の変数が無いので宙に浮く)、変数を指定した所にのみ代入されます。
以下にサンプル。
<pre>
<?php
$arr = array("dog", "cat", "cow", "frog", "pig");
list($arr1[] , $arr1[] , $arr1[] , $arr1[] ) = $arr;
list($arr2[] , $arr2[] , $arr2[] , $arr2[], $arr2[], $arr2[]) = $arr;
list($arr3[0], $arr3[1], $arr3[2], $arr3[3]) = $arr;
list($arr4[] , $arr4[] , $arr4[6], $arr4[] ) = $arr;
list( , $arr5[] , , $arr5[], ) = $arr;
$i = 0;
list($arr6[$i++], $arr6[$i++], $arr6[$i++], $arr6[$i++]) = $arr;
print_r($arr1);
print_r($arr2);
print_r($arr3);
print_r($arr4);
print_r($arr5);
print_r($arr6);
/*出力結果
Array
(
[0] => frog
[1] => cow
[2] => cat
[3] => dog
)
Array
(
[0] =>
[1] => pig
[2] => frog
[3] => cow
[4] => cat
[5] => dog
)
Array
(
[3] => frog
[2] => cow
[1] => cat
[0] => dog
)
Array
(
[0] => frog
[6] => cow
[7] => cat
[8] => dog
)
Array
(
[0] => frog
[1] => cat
)
Array
(
[3] => frog
[2] => cow
[1] => cat
[0] => dog
)
*/
?>
</pre>
上記サンプルの結果を見る限り、まず代入元の配列の要素数と「list()」に指定した変数の数を調べた後、「list()」に指定された後ろの変数から順に代入して行ってる様です。
PageTop
count()
関数
- int count(mixed 変数)
- 「変数」が持つ要素数を返す関数です。
- 通常「変数」に指定するものは配列ですが、それ以外のものも指定出来ます。しかし、配列以外でない普通の変数は値を1つしか持たないので常に「1」を返すことになり無意味です。
以下にサンプル。
<?php
$arr = array("dog", "cat", "cow", "frog", "crab");
echo count($arr);
/*出力結果
5
*/
?>
PageTop
array_chunk()
関数
- array array_chunk(array 配列, int サイズ[, bool キーの維持])
- 「配列」を要素数がそれぞれ「サイズ」個持つ配列に分割し、分割された配列を持つ多次元配列を生成して返す関数です。
- 最後の配列は「サイズ」よりも少ない要素数になる可能性があります。
- 「キーの維持」には真偽値を指定出来ます。「TRUE」を指定すると、元の配列のキー(添え字)を維持し、分割されたそれぞれの配列の要素のキーは、分割前のキーがそのまま付きます。「FALSE」を指定すると、元の配列でのキーは維持されずに、「0」から始まるキーが割り振られます。デフォルト値は「FALSE」です。
以下にサンプル。
<pre>
<?php
$arr = array("dog", "cat", "cow", "frog", "crab");
print_r( array_chunk($arr, 2) );
print_r( array_chunk($arr, 2, TRUE) );
/*出力結果
Array
(
[0] => Array
(
[0] => dog
[1] => cat
)
[1] => Array
(
[0] => cow
[1] => frog
)
[2] => Array
(
[0] => crab
)
)
Array
(
[0] => Array
(
[0] => dog
[1] => cat
)
[1] => Array
(
[2] => cow
[3] => frog
)
[2] => Array
(
[4] => crab
)
)
*/
?>
</pre>
PageTop
array_keys()
関数
- array array_keys(array 配列[, mixed 対象要素])
- 「配列」内のキー(添え字)を要素に持つ配列を生成して返す関数です。
- 「対象要素」を指定すると、その要素に一致するキーのみを要素に含む配列を生成します。
以下にサンプル。
<pre>
<?php
$arr = array("a" => 100, "b" => 150, "c" => 170, "d" => 150);
print_r( array_keys($arr) );
print_r( array_keys($arr, 150) );
/*出力結果
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
Array
(
[0] => b
[1] => d
)
*/
?>
</pre>
PageTop
array_values()
関数
- array array_values(array 配列)
- “「配列」内の要素”を要素に持つ配列を生成して返す関数です。
以下にサンプル。
<pre>
<?php
$arr = array("a" => 100, "b" => 150, "c" => 170, "d" => 150);
print_r( array_values($arr) );
/*出力結果
Array
(
[0] => 100
[1] => 150
[2] => 170
[3] => 150
)
*/
?>
</pre>
PageTop
array_merge()
関数
- array array_merge(array 配列1, array 配列2[, array 配列3...])
- 前の「配列」の後ろに「配列」を追加していって出来た配列を返す関数です。
- 文字列のキーは維持されますが、キーが整数の場合は保持されず、「0」から始まる連番になります。
- (文字列の)キーが一致する場合は、追加する方の配列の値が上書きされていきます。
以下にサンプル。
<pre>
<?php
$arr1 = array(12 => 100, "a" => 100, 100);
$arr2 = array("c" => 200, "a" => 200, 30 => 200, 200);
$arr3 = array(300, "a" => 300, "b" => 300, 300);
print_r( array_merge($arr1, $arr2, $arr3) );
/*出力結果
Array
(
[0] => 100
[a] => 300
[1] => 100
[c] => 200
[2] => 200
[3] => 200
[4] => 300
[b] => 300
[5] => 300
)
*/
?>
</pre>
整数のキーは完全に無視され、登場した順に「0」から始まる連番をキーに持つ形で追加されています。また、重複する文字列のキーの場合は上書きされ、後に登場したものが最終的な値になっています。
PageTop
array_pad()
関数
- array array_pad(array 配列, int 要素数, mixed 埋め込む値)
- 「配列」の要素数が指定した「要素数」より少ない場合に、「配列」に「埋め込む値」を要素として追加していって出来た配列を返す関数です。
- 「要素数」が正の整数の場合は「埋め込む値」を配列の右側に埋めていき、負の整数の場合は配列の左側に埋めていきます。
以下にサンプル。
<pre>
<?php
$arr = array("dog", "cat", "cow");
print_r( array_pad($arr, 1, " - ") );
print_r( array_pad($arr, 5, " - ") );
print_r( array_pad($arr, -5, " - ") );
/*出力結果
Array
(
[0] => dog
[1] => cat
[2] => cow
)
Array
(
[0] => dog
[1] => cat
[2] => cow
[3] => -
[4] => -
)
Array
(
[0] => -
[1] => -
[2] => dog
[3] => cat
[4] => cow
)
*/
?>
</pre>
PageTop
array_reverse()
関数
- array array_reverse(array 配列[, bool キーの保持])
- 「配列」の要素の順番を逆にした配列を返す関数です。
- 「キーの保持」に「TRUE」を指定すると、生成される配列の要素のキーは、元の「配列」の時のキーが保持された状態で生成されます。デフォルト値は「FALSE」です。キーが文字列の場合は常に保持されます。
以下にサンプル。
<pre>
<?php
$arr = array("a" => "dog", 5 => "cat", "cow");
print_r( array_reverse($arr) );
print_r( array_reverse($arr, TRUE) );
/*出力結果
Array
(
[0] => cow
[1] => cat
[a] => dog
)
Array
(
[6] => cow
[5] => cat
[a] => dog
)
*/
?>
</pre>
PageTop
in_array()
関数
- bool in_array(mixed 要素, array 配列[, bool 厳格])
- 「配列」内に、指定した「要素」があれば「TRUE」を、無ければ「FALSE」を返す関数です。
- 「要素」が文字列の場合は大文字と小文字を区別します。
- 「厳格」に「TRUE」を指定すると、要素の型まで厳格に比較します。デフォルト値は「FALSE」です。
以下にサンプル。
<?php
$arr = array("dog", "cat", "cow", 6, "10");
if( in_array("6", $arr) )
echo '"6" is exists';
else
echo '"6" is not exists';
echo "<br />";
if( in_array("6", $arr, TRUE) )
echo '"6" is exists';
else
echo '"6" is not exists';
/*出力結果
"6" is exists
"6" is not exists
*/
?>
PageTop
array_search()
関数
- mixed array_search(mixed 要素, array 配列[, bool 厳格])
- 「配列」内に、指定した「要素」があればその要素に対応するキーを、存在しなければ「FALSE」を返す関数です。
- 「要素」が文字列の場合は大文字と小文字を区別します。
- 「厳格」に「TRUE」を指定すると、要素の型まで厳格に比較します。デフォルト値は「FALSE」です。
以下にサンプル。
<?php
$arr = array("dog", "cat", "cow", 6, "10");
echo array_search("cow", $arr);
/*出力結果
2
*/
?>
PageTop
array_push()
関数
- int array_push(array 配列, mixed 変数[, mixed ...])
- 「配列」の後尾に1つ以上の要素を追加し、追加後の要素数を返す関数です。
以下にサンプル。
<pre>
<?php
$arr = array("a" => "dog", 5 => "cat", "cow");
echo array_push($arr, "frog", "crab"), "\n";
print_r($arr);
/*出力結果
5
Array
(
[a] => dog
[5] => cat
[6] => cow
[7] => frog
[8] => crab
)
*/
?>
</pre>
PageTop
array_unshift()
関数
- int array_unshift(array 配列, mixed 変数[, mixed ...])
- 「配列」の先頭に1つ以上の要素を追加し、追加後の要素数を返す関数です。
- キーが整数値だった場合、追加後のキーは「0」から始まる連番になります。
以下にサンプル。
<pre>
<?php
$arr = array("a" => "dog", 5 => "cat", "cow");
echo array_unshift($arr, "frog", "crab"), "\n";
print_r($arr);
/*出力結果
5
Array
(
[0] => frog
[1] => crab
[a] => dog
[2] => cat
[3] => cow
)
*/
?>
</pre>
PageTop
array_pop()
関数
- mixed array_pop(array 配列)
- 「配列」の最後の要素を削除し、その削除された要素を返す関数です。
- 「配列」が空もしくは配列ではない場合は「NULL」を返します。
以下にサンプル。
<pre>
<?php
$arr = array("a" => "dog", 5 => "cat", "cow");
echo array_pop($arr), "\n";
print_r($arr);
/*出力結果
cow
Array
(
[a] => dog
[5] => cat
)
*/
?>
</pre>
PageTop
array_shift()
関数
- mixed array_shift(array 配列)
- 「配列」の先頭の要素を削除し、その削除された要素を返す関数です。
- 「配列」が空もしくは配列ではない場合は「NULL」を返します。
- キーが整数値だった場合、処理後のキーは「0」から始まる連番になります。
以下にサンプル。
<pre>
<?php
$arr = array("a" => "dog", 5 => "cat", "cow");
echo array_shift($arr), "\n";
print_r($arr);
/*出力結果
dog
Array
(
[0] => cat
[1] => cow
)
*/
?>
</pre>
PageTop
sort()
関数
- void sort(array 配列[, int ソートフラグ])
- 「配列」の要素をソートする関数です。
- 「ソートフラグ」には、次の3つの定数が指定出来ます。
「SORT_REGULAR
」(通常通りに比較する)、
「SORT_NUMERIC
」(数値的に比較する)、
「SORT_STRING
」(文字列として比較する)
デフォルト値は「SORT_REGULAR
」です。
- ソート前のキーは一切保持されず、ソート後の配列のキーは「0」から始まる連番になります。
以下にサンプル。
<pre>
<?php
$arr = array("dog", "cat", "a" => "cow", "frog", "crab");
sort($arr);
print_r($arr);
$arr = array(2, 0, 10, "01", 100, "001", 1, 0.1);
sort($arr, SORT_NUMERIC);
print_r($arr);
sort($arr, SORT_STRING);
print_r($arr);
/*出力結果
Array
(
[0] => cat
[1] => cow
[2] => crab
[3] => dog
[4] => frog
)
Array
(
[0] => 0
[1] => 0.1
[2] => 1
[3] => 001
[4] => 01
[5] => 2
[6] => 10
[7] => 100
)
Array
(
[0] => 0
[1] => 0.1
[2] => 001
[3] => 01
[4] => 1
[5] => 10
[6] => 100
[7] => 2
)
*/
?>
</pre>
PageTop
rsort()
関数
- void rsort(array 配列[, int ソートフラグ])
- 「配列」の要素を逆順にソートする関数です。
- 逆順にソートする以外「
sort()
」関数と同じです。
以下にサンプル。
<pre>
<?php
$arr = array("dog", "cat", "a" => "cow", "frog", "crab");
rsort($arr);
print_r($arr);
$arr = array(2, 0, 10, "01", 100, "001", 1, 0.1);
rsort($arr, SORT_NUMERIC);
print_r($arr);
rsort($arr, SORT_STRING);
print_r($arr);
/*出力結果
Array
(
[0] => frog
[1] => dog
[2] => crab
[3] => cow
[4] => cat
)
Array
(
[0] => 100
[1] => 10
[2] => 2
[3] => 1
[4] => 001
[5] => 01
[6] => 0.1
[7] => 0
)
Array
(
[0] => 2
[1] => 100
[2] => 10
[3] => 1
[4] => 01
[5] => 001
[6] => 0.1
[7] => 0
)
*/
?>
</pre>
PageTop
ksort()
関数
- void ksort(array 配列[, int ソートフラグ])
- 「配列」をキーでソートする関数です。
- キーでソートする以外「
sort()
」関数と同じです。
以下にサンプル。
<pre>
<?php
$arr = array("dog", "b" => "cat", 6 => "cow",
"a" => "frog", "crab");
ksort($arr);
print_r($arr);
ksort($arr, SORT_NUMERIC);
print_r($arr);
ksort($arr, SORT_STRING);
print_r($arr);
/*出力結果
Array
(
[a] => frog
[0] => dog
[b] => cat
[6] => cow
[7] => crab
)
Array
(
[a] => frog
[b] => cat
[0] => dog
[6] => cow
[7] => crab
)
Array
(
[0] => dog
[6] => cow
[7] => crab
[a] => frog
[b] => cat
)
*/
?>
</pre>
PageTop
krsort()
関数
- void krsort(array 配列[, int ソートフラグ])
- 「配列」をキーで逆順にソートする関数です。
- 逆順にソートする以外「
ksort()
」関数と同じです。
以下にサンプル。
<pre>
<?php
$arr = array("dog", "b" => "cat", 6 => "cow",
"a" => "frog", "crab");
krsort($arr);
print_r($arr);
krsort($arr, SORT_NUMERIC);
print_r($arr);
krsort($arr, SORT_STRING);
print_r($arr);
/*出力結果
Array
(
[7] => crab
[6] => cow
[b] => cat
[a] => frog
[0] => dog
)
Array
(
[7] => crab
[6] => cow
[0] => dog
[b] => cat
[a] => frog
)
Array
(
[b] => cat
[a] => frog
[7] => crab
[6] => cow
[0] => dog
)
*/
?>
</pre>
PageTop
asort()
関数
- void asort(array 配列[, int ソートフラグ])
- キーと要素の関係を維持しつつ、「配列」の要素をソートする関数です。
- キーを維持する事以外「
sort()
」関数と同じです。
以下にサンプル。
<pre>
<?php
$arr1 = $arr2 = array("dog", "b" => "cat", 6 => "cow",
"a" => "frog", "crab");
sort($arr1);
print_r($arr1);
asort($arr2);
print_r($arr2);
/*出力結果
Array
(
[0] => cat
[1] => cow
[2] => crab
[3] => dog
[4] => frog
)
Array
(
[b] => cat
[6] => cow
[7] => crab
[0] => dog
[a] => frog
)
*/
?>
</pre>
PageTop
arsort()
関数
- void arsort(array 配列[, int ソートフラグ])
- キーと要素の関係を維持しつつ、「配列」の要素を逆順にソートする関数です。
- 逆順にソートする以外「
asort()
」関数と同じです。
以下にサンプル。
<pre>
<?php
$arr1 = $arr2 = array("dog", "b" => "cat", 6 => "cow",
"a" => "frog", "crab");
rsort($arr1);
print_r($arr1);
arsort($arr2);
print_r($arr2);
/*出力結果
Array
(
[0] => frog
[1] => dog
[2] => crab
[3] => cow
[4] => cat
)
Array
(
[a] => frog
[0] => dog
[7] => crab
[6] => cow
[b] => cat
)
*/
?>
</pre>
PageTop
natsort()
関数
- void natsort(array 配列)
- 自然順(人間が想定する順番)アルゴリズムで、「配列」の要素をソートする関数です。
- キーは維持されます。
以下にサンプル。
<pre>
<?php
$arr1 = $arr2 = array( "hode10.php", "hode2.php", "hode0.php",
"hode100.php", "hode1.php", "hode11" );
sort($arr1);
print_r($arr1);
natsort($arr2);
print_r($arr2);
/*出力結果
Array
(
[0] => hode0.php
[1] => hode1.php
[2] => hode10.php
[3] => hode100.php
[4] => hode11
[5] => hode2.php
)
Array
(
[2] => hode0.php
[4] => hode1.php
[1] => hode2.php
[0] => hode10.php
[5] => hode11
[3] => hode100.php
)
*/
?>
</pre>
PageTop
作成日:2004年06月13日 最終更新日:2004年08月03日
【通常モード で表示】