配列用関数
- ここでは、使用頻度の高い配列処理関数群の説明をします
配列用の関数
array関数 |
機能と返り値 |
引数に列挙されたデータをまとめて変数に代入 |
引数 |
配列に代入する1つまたは複数のデータ |
<?php
$names = array("鈴木", "田中", "高橋", "山田");
for ($i=0; $i=3, $i++) {
print $i . "回目のループ= " . $names[$i] ."さんです<br />";
}
?>
|
count関数 |
機能と返り値 |
引数に指定した配列のデータ数を返す.配列のインデックスは0から始まる |
引数 |
任意の配列 |
<?php
$names = array("鈴木", "田中", "高橋", "山田");
for ($i=0; $i < count($names); $i++) {
print $names[$i] . "<br />"
}
?>
|
list /
each関数 |
機能と返り値 |
listは、1回の操作で複数の引数に値を代入.eachは、配列からキーとデータの値をペアで取り出す |
引数 |
listでは、eachで取り出されたキーと値を代入する変数を指定.eachでは、任意の配列を指定
|
<?php
$userList = array(
"no" => "1",
"name" => "山田",
"address" => "東京都",
"tel" => "03-0000-1111",
"mail" => "yamada@aaaaaa.com",
);
while (list($key, $value) = each($userList)) {
print $key . "=" . $value . "<br />";
}
?> |
◆正直あまり使用ことがないかも.これを使うのだったら断然 foreach 文を使うべき
sort関数 |
機能と返り値 |
配列内のデータをソート.引数として渡した配列がそのままソートされる |
引数 |
任意の配列 |
<?php
$a = array(500, 12, 100, 1, 256, 45);
for ($i=0; $i < count($a); $i++) {
print $a[$i] . "<br />"
}
//ここでソート処理
sort($a);
for ($i=0; $i < count($a); $i++) {
print $a[$i] . "<br />"
}
?>
|
array_unique関数 |
機能と返り値 |
配列内の重複したデータを取り除いた結果を返す.重複した場合、2番目以降を空にし、配列内を前詰めにはしません |
引数 |
任意の配列 |
<?php
$a = array(500, 12, 100, 1, 256, 12, 50, 12);
//重複値を取り除く
$unique = array_unique($a);
for ($i=0; $i < count($names); $i++) {
print $i . " = " . $unique[$i] . "<br />"
}
?>
|
array_sum関数 |
機能と返り値 |
配列内のデータの合計を返す |
引数 |
任意の配列 |
<?php
$a = array(500, 12, 100, 1, 256, 12, 50, 12);
print array_sum($a);
?>
|
array_search関数 |
機能と返り値 |
連想配列内のデータを検索し、そのキーを返す |
引数 |
第一引数に検索するデータを指定し、第二引数に検索対象の任意の配列を指定 |
<?php
$userList = array(
"no" => "1",
"name" => "山田",
"address" => "東京都",
"tel" => "03-0000-1111",
"mail" => "yamada@aaaaaa.com",
);
print array_seatch("東京都", $userList);
?>
|
array_flip関数 |
機能と返り値 |
連想配列内のキーと値の入れ替え結果を返す |
引数 |
任意の連想配列 |
<?php
$userList = array(
"no" => "1",
"name" => "山田",
"address" => "東京都",
"tel" => "03-0000-1111",
"mail" => "yamada@aaaaaa.com",
);
//入れ替え
$flipdata = array_flip($userList);
while (list($key, $value) = each($flipdata)) {
print $key . " = " . $value . "<br />";
}
?>
|
array_unshift関数 |
機能と返り値 |
|
引数 |
第一引数に任意の配列.第二引数以降には、追加する複数データ |
<?php
$names = array("鈴木", "田中", "高橋", "山田");
$retcnt = array_unshift($names, "阿達", "川上", "小川")
for ($i=0; $i < $retcnt; $i++) {
print $names[$i] . "<br />"
}
?>
|
array_push関数 |
機能と返り値 |
配列の最後にデータを追加 |
引数 |
第一引数に任意の配列.第二引数以降には、追加する複数データ |
<?php
$names = array("鈴木", "田中", "高橋", "山田");
$retcnt = array_push($names, "阿達", "川上", "小川")
for ($i=0; $i < $retcnt; $i++) {
print $names[$i] . "<br />"
}
?>
|
array_shift関数 |
機能と返り値 |
配列の先頭データを削除します.削除後の配列データは前詰めされる.削除されたデータの内容が返り値 |
引数 |
任意の配列 |
<?php
$names = array("鈴木", "田中", "高橋", "山田");
$deleteData = array_shift($names);
print $deleteData . "削除しました" . "<br />";
for ($i=0; $i < count($names); $i++) {
print $names[$i] . "<br />";
}
?>
|
array_pop関数 |
機能と返り値 |
配列の最後のデータを削除.削除されたデータの内容が返り値
|
引数 |
任意の配列 |
<?php
$names = array("鈴木", "田中", "高橋", "山田");
$deleteData = array_pop($names);
print $deleteData . "削除しました" . "<br />";
for ($i=0; $i < count($names); $i++) {
print $names[$i] . "<br />";
}
?>
|
join /
implode関数 |
機能と返り値 |
配列内の各データを1つの文字列に結合 |
引数 |
第二引数に任意の配列.データを結合する際、データ間に挿入する文字を第一引数に指定 |
<?php
$names = array("鈴木", "田中", "高橋", "山田");
print join("と", $names);
print implode("さんと", $names);
?>
|
str_split関数 |
機能と返り値 |
文字列を指定サイズごとに区切って、それぞれのデータを配列にして返す |
引数 |
第一引数に任意の配列.第二引数に、文字列を区切るバイト数を指定 |
<?php
$a = "abcdefg";
$b = str_split($a); //文字列を1バイトずつ区切って配列に代入
for ($i=0; $i < count($b); $i++) {
print $b[$i] . "<br />";
}
$c = "鈴木田中高橋山田";
$d = str_split($c) //文字列を4バイト(漢字2文字)ずつ区切って配列に代入
for ($i=0; $i < count($d); $i++) {
print $d[$i] . "<br />";
}
?>
|
is_array関数 |
機能と返り値 |
引数に指定した変数が、配列なのかチェック |
引数 |
任意の配列 |
<?php
$name1 = "植田";
print (is_array($name1) ? "配列です" : "配列ではない") . "<br />";
$name2 = array("鈴木", "田中", "高橋", "山田");
print (is_array($name2) ? "配列です" : "配列ではない") . "<br />";
?>
|
◆配列用のデバック機能で、print_r
関数を使用しよう
$names = array("鈴木", "田中", "高橋", "山田");
//変数$namesが、配列か調べる
print_r($names);