014 文字列を結合/分割する

結合演算子「.」

chunk_split()関数
書式 chunk_split(➀[,➁[,➂] ])
➀ 分割したい文字列
➁ 区切り文字を入れる長さ
➂ 区切り文字
➀に指定した文字列を➁に指定しいた長さの間隔で分割し➂に指定した区切り文字を挿入した文字列を返します。➁を省略すると、デフォルト値である76文字で分割されます。➂を省略すると、デフォルト値「¥n」(改行文字)が使われます。


wordwrap()関数
書式 wordwrap(➀[,➁[,➂[,➃] ] ])
➀ 分割したい文字列
➁ 区切り文字を入れる長さ
➂ 区切り文字
➃ 常に指定幅でラップするか
➀に指定した文字列を➁に指定しいた長さの間隔で分割し➂に指定した区切り文字を挿入した文字列を返します。➁を省略すると、デフォルト値である76文字で分割されます。➂を省略すると、デフォルト値「¥n」(改行文字)が使われます。➃に「1」を指定すると、指定幅より長い単語でも常に分割されます。


strtok()関数
書式 strtok(➀[,➁])
➀ 分割したい文字列
➁ 区切り文字
➀に指定した文字列を➁に指定した区切りの文字で分割して返します。➁を省略すると、デフォルト値「¥n」(改行文字)が使われます。


explode()関数
書式 explode(➀,➁[,➂])
➀ 区切り文字
➁ 分割したい文字列
➂ 返される配列の最大要素数
➀に指定した文字で、➁に指定した文字列で分割します。分割した各文字列を要素とする配列を返します。


str_split()関数
書式 str_split(➀,[➁])
➀ 分割したい文字列
➁ 分割する文字列の長さ
➀に指定した文字列を、➁に指定した長さで分割します。分割した各文字列を要素とする配列を返します。➁を省略すると、1文字の長さで分割されます。

<?php
$str1="PHP5を";
$str2="学習しよう";
$str3="My name is Isonokami";
$str4="www.Isonokami.co.jp";

print($str1.$str2."<br />");

print(chunk_split($str3,2,":")."<br />");
print(wordwrap($str3,2,":")."<br />");

print(strtok($str4,".")."<br />");
print(strtok(".")."<br />");
print(strtok(".")."<br />");
print(strtok(".")."<br />");

print_r(explode(".",$str4));
print("<br />");
print_r(str_split($str4,4));
?>

PHP5を学習しよう
My: n:am:e :is: I:so:no:ka:mi:
My:name:is:Isonokami
www
Isonokami
co
jp
Array
(
[0] => www
[1] => Isonokami
[2] => co
[3] => jp
)

Array
(
[0] => www.
[1] => Ison
[2] => okam
[3] => i.co
[4] => .jp
)

013 配列同士を比較する

array_diff()関数
書式 array_diff(➀,➁[,➂])
➀  比較元の配列
➁➂ 比較対象の配列
複数の配列を比較し、異なる要素を抽出して、配列として返します。


array_intersect()関数
書式 array_intersect(➀,➁[,➂])
➀  比較元の配列
➁➂ 比較対象の配列
複数の配列を比較し、共通する要素を抽出して、配列として返します。

<?php
$ary1=array("りんご","みかん","バナナ","もも","ぶどう");
$ary2=array("いちご","みかん","もも","なし","ドリアン");
print_r(array_diff($ary1,$ary2));	//差分要素を抽出・表示
print("<br />");
print_r(array_intersect($ary1,$ary2));	//共通要素を抽出・表示
print("<br />");

$ary3=array("name" => "鈴木","address" => "東京","tel" => "03-0000-0000");
$ary4=array("name" => "佐藤","address" => "東京","tel" => "03-0000-0000");
print_r(array_diff($ary3,$ary4));	//差分要素を抽出・表示
print("<br />");
print_r(array_intersect($ary3,$ary4));	//共通要素を抽出・表示
?>

Array
(
[0] => りんご
[2] => バナナ
[4] => ぶどう
)

Array
(
[1] => みかん
[3] => もも
)

Array
(
[name] => 鈴木
)

Array
(
[address] => 東京
[tel] => 03-0000-0000
)

012 配列を逆順に並び替える

array_reverse()関数
書式 array_reverse(➀[,➁])
➀ 並べ替えたい配列
➁ キーの値を保持するかどうか
配列を逆順に並べ替えします。➁にTRUEを指定するとインデックスと値の関係が保持され、FALSE(デフォルト)を指定すと保持されません。並べ替えの後の配列を返します。

<?php
$ary1=array("りんご","みかん","バナナ","もも","ぶどう");
$ary2=array("name" => "鈴木","address" => "東京","tel" => "03-0000-0000");

print_r(array_reverse($ary1));
print("<br />");
print_r(array_reverse($ary1,TRUE));
print("<br />");
print_r(array_reverse($ary2));
?>

Array
(
[0] => ぶどう
[1] => もも
[2] => バナナ
[3] => みかん
[4] => りんご
)

Array
(
[4] => ぶどう
[3] => もも
[2] => バナナ
[1] => みかん
[0] => りんご
)

Array
(
[tel] => 03-0000-0000
[address] => 東京
[name] => 鈴木
)

011 配列をソートする

sort()関数
書式 sort(➀[,➁])
➀ ソートしたい配列
➁ ソート方法
➀に指定した配列の要素を昇順にソートします。➁ソート方法には以下のフラグが用意されています。

ソート方法

SORT_REGULAR     通常通りに比較
SORT_NUMERIC     数値として比較
SORT_STRING     文字列として比較
SORT_LOCALE_STRING     現在のロケールに基づき文字列として比較



rsort()関数
書式 rsort(➀[,➁])
➀ ソートしたい配列
➁ ソート方法
➀に指定した配列の要素を降順にソートします。➁ソート方法はsort()関数と同様のフラグが用意されています。


ksort()関数
書式 ksort(➀[,➁])
➀ ソートしたい配列
➁ ソート方法
➀に指定した配列の要素をキーで昇順にソートします。➁ソート方法はsort()関数と同様のフラグが用意されています。


krsort()関数
書式 krsort(➀[,➁])
➀ ソートしたい配列
➁ ソート方法
➀に指定した配列の要素をキーで降順にソートします。➁ソート方法はsort()関数と同様のフラグが用意されています。


asort()関数
書式 asort(➀[,➁])
➀ ソートしたい配列
➁ ソート方法
➀に指定した配列の要素を値で昇順にソートします。➁ソート方法はsort()関数と同様のフラグが用意されています。


arsort()関数
書式 arsort(➀[,➁])
➀ ソートしたい配列
➁ ソート方法
➀に指定した配列の要素を値で降順にソートします。➁ソート方法はsort()関数と同様のフラグが用意されています。

<?php
$ary1=array("りんご","みかん","バナナ","もも","ぶどう");
sort($ary1);		//昇順ソート
print_r($ary1);
print("<br />");
rsort($ary1);		//降順ソート
print_r($ary1);
print("<br />");

$ary2=array("name" => "鈴木","address" => "東京","tel" => "03-0000-0000");
ksort($ary2);		//キーで昇順ソート
print_r($ary2);
print("<br />");
krsort($ary2);		//キーで降順ソート
print_r($ary2);
print("<br />");
asort($ary2);		//値で昇順ソート
print_r($ary2);
print("<br />");
arsort($ary2);		//値で降順ソート
print_r($ary2);
print("<br />");
?>

Array
(
[0] => ぶどう
[1] => みかん
[2] => もも
[3] => りんご
[4] => バナナ
)

Array
(
[0] => バナナ
[1] => りんご
[2] => もも
[3] => みかん
[4] => ぶどう
)

Array
(
[address] => 東京
[name] => 鈴木
[tel] => 03-0000-0000
)

Array
(
[tel] => 03-0000-0000
[name] => 鈴木
[address] => 東京
)

Array
(
[tel] => 03-0000-0000
[address] => 東京
[name] => 鈴木
)

Array
(
[name] => 鈴木
[address] => 東京
[tel] => 03-0000-0000
)

010 複数の配列を結合する

array_merge()関数
書式 array_merge(➀[,➁,・・・])
➀ 元の配列
➁ 結合したいの配列
配列同士を結合して、返します。その際、同じ文字列キーの要素は上書きされます。数字キーなら自動的に前の配列の後ろに追加され、上書きされません。

array_merge_recursive()関数
書式 array_merge_recursive(➀[,➁,・・・])
➀ 元の配列
➁ 結合したいの配列
配列同士を結合して、返します。その際、同じ文字列キーの要素は上書きされず、多次元配列として結合されます。数字キーなら自動的に前の配列の後ろに追加されます。

<?php
$ary1=array("name" => "鈴木","address" => "東京","tel" => "03-0000-0000");
$ary2=array("name" => "佐藤","address" => "千葉","age" => "35");

print_r(array_merge($ary1,$ary2));
print("<br />");
print_r(array_merge_recursive($ary1,$ary2));
print("<br />");
print_r($ary1 + $ary2);
?>

Array
(
[name] => 佐藤
[address] => 千葉
[tel] => 03-0000-0000
[age] => 35
)

Array
(
[name] => Array
(
[0] => 鈴木
[1] => 佐藤
)

[address] => Array
(
[0] => 東京
[1] => 千葉
)

[tel] => 03-0000-0000
[age] => 35
)

Array
(
[name] => 鈴木
[address] => 東京
[tel] => 03-0000-0000
[age] => 35
)

009 配列の要素を検索する

array_search()関数
書式 array_search(➀,➁[,➂])
➀ 検索する値
➁ 検索対象の配列
➂ 厳密な検索を行うかどうか
配列の中から指定した値と一致する値を持つ要素を探し、そのキーまたはインデックスを返します。一致する値が存在しない場合はNULLを返します。 ➂にTRUEが指定された場合、型の一致もチェックします。

array_filter()関数
書式 array_filter(➀[,➁])
➀ 検索対象の配列
➁ コールバック関数
コールバック関数に指定した条件に合致する要素を検索し、そのキーと値を返します。コールバック関数は別途定義しておき、その関数名を文字列として➁に指定します。

<?php
$ary1=array("りんご","みかん","バナナ","もも","ぶどう");
print(array_search("バナナ",$ary1));
print("<br />--------------------<br />");

function myFilter($num){
	if($num >= 10){
		return TRUE;
	}else{
		return FALSE;
	}
}

$ary2=array(4,12,8,26,5,20);
print_r(array_filter($ary2,"myFilter"));
?>

2
——————–
Array
(
[1] => 12
[3] => 26
[5] => 20
)

007 配列の要素数/要素の出現回数を調べる

count()関数
書式 count(➀[,➁])
➀ 要素数を求めたい配列
➁ 多次元配列を再帰的にカウントするかどうか
配列の要素数を返します。

array_count_values()関数
書式 array_count_values(➀)
➀ 要素の出現回数を求めたい配列
➁ 多次元配列を再帰的にカウントするかどうか
要素出現回数を求めます。キーを要素名、値を出現回数とする連想配列を返します。

<?php
$ary1=array("name" => "鈴木","address" => "東京","tel" => "03-0000-0000","age" => "35");
print(count($ary1)."<br />");

$ary2=array("りんご","みかん","バナナ","もも","ぶどう","みかん","もも");
print_r(array_count_values($ary2));
?>

4
Array
(
[りんご] => 1
[みかん] => 2
[バナナ] => 1
[もも] => 2
[ぶどう] => 1
)

006 配列のキー/値を取得する

array_keys()関数
書式 array_keys(➀[,➁[,➂]])
➀ キーの一覧を取得したい配列
➁ キー
➂ 厳密な比較を行うかどうか
配列のキーの一覧を取得し、配列として返します。➁を指定すると、その値と等しいキーのみ抽出されます。➂にTRUEが指定された場合、型の一致もチェックします。

<?php
$ary1=array("name" => "鈴木","address" => "東京","tel" => "03-0000-0000","age" => "35");

//キーと値の一覧を表示
print_r(array_keys($ary1));
print("<br />");
print_r(array_values($ary1));
print("<br />");

print("--------------------<br />");

//ポインタ制御で要素を表示
print(current($ary1)."<br />");
print(next($ary1)."<br />");
print(end($ary1)."<br />");
print(prev($ary1)."<br />");
print(key($ary1)."<br />");
print(reset($ary1)."<br />");
?>

Array
(
[0] => name
[1] => address
[2] => tel
[3] => age
)

Array
(
[0] => 鈴木
[1] => 東京
[2] => 03-0000-0000
[3] => 35
)

——————–
鈴木
東京
35
03-0000-0000
tel
鈴木

005 配列のキーと値のペアを取得する 2

each()関数
書式 each(➀)
➀ 要素を取り出したい配列
配列から順番に要素を取り出します。 実行するごとに、引数に渡された配列から値、またはキーと値の組み合わせを順番に取り出して返します。

<?php
$ary1=array("name" => "鈴木","address" => "東京","tel" => "03-0000-0000","age" => "35");

while(list($key,$value) = each($ary1)){
	print($key.":".$value."<br />");
}

print("--------------------<br />");

$tmp = array_slice($ary1, 1, 2);
reset($ary1);
while(list($key,$value) = each($tmp)){
	print($key.":".$value."<br />");
}
?>

name:鈴木
address:東京
tel:03-0000-0000
age:35
——————–
address:東京
tel:03-0000-0000