リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

6-3. PHPの配列③配列の関数の使用

6章の最後は基本的な配列の関数について紹介していきます。


1-1.変数が配列なのか調べるis_array関数


変数が配列なのかどうかを調べるときに、『is_array関数』を使用します。
配列の場合はTRUE、違う場合はFALSEを返します。

◎例:変数が配列か調べる


<?php
//調べたい配列
$array = array('this','is','an array');
//普通の変数
$val = "ristaosu";

//is_arrayで$arrayを検査
if (is_array($array)) {
echo "変数「array」は配列です。";
} else {
echo "変数「array」は配列ではありません。";
}
//is_arrayで$valを検査
if (is_array($val)) {
echo "変数「val」は配列です。";
} else {
echo "変数「val」は配列ではありません。";
}
?>

f:id:taro-blog2323:20160807170447p:plain
配列なのかは見ればわかるやんと思ったりもしたけど、変数を参照したりしたときに必要なのかなと思います。おそらく。

1-2.配列内のエレメント数を数えるcount関数


配列に含まれるエレメント数を数えたいときに『count関数』を使用します。
◎例:配列の項目数を調べる

<?php
 $array = array('this','is','an array');
 $count = count($array);

echo('配列に含まれる項目数は'.$count.'です');
?>


結果はこう。
f:id:taro-blog2323:20160807172207p:plain

◎例:多次元配列の項目数を調べる


<?php
 $member = array(
  "0"=> array(
"name"=> "田中","age" => "20","tall" => "180"),
  "1"=> array("name"=> "山田","age" => "15","tall" => "160"),
  "2"=> array("name"=> "本田","age" => "26","tall" => "178"));

echo count($member);
?>


結果はこう。
f:id:taro-blog2323:20160807173650p:plain
また、「echo count($member);」を「echo count($member,1);」とすると、サブ配列エレメントを含めた再帰的なアカウントを実行します。
f:id:taro-blog2323:20160807174008p:plain

1-3.エレメントの並び替えをするsort関数


エレメントの並び替えをするときに『sort関数』を使用します。昇順にソートするときはsort関数、降順のときはrsort関数を使います。
sortに成功したらTrue、エラーがあったらFalseを返します。
そのほかにも何で比較したいかによって以下のように指定します。
sort($array, SORT_NUMERIC); //エレメントを数値として比較
sort($array, SORT_STRING); //エレメントを文字列として比較

1-4. 配列をシャッフルするshuffle関数


配列をシャッフルしたいとき(例えばトランプゲームを作成するときとか、占いゲームとかとか)は『shuffle関数」を使います。shuffleも成功したらTrue、エラーがあったらFalseを返します。
◎例:ランダムで値を選択する

<?php
$fortune= array('大吉','中吉','小吉','凶');
shuffle($fortune);

echo current($fortune);
?>


アクセスするたびに$fortuneの中からランダムに値が選択されます。
f:id:taro-blog2323:20160807181917p:plain
占いとかなら本当は確率とか入れたりするんだと思うんですが、シャッフル関数としてはこんな感じです。

1-5. スペースで区切られた文字を配列に入れるexplode関数


explode関数は、単一文字(または文字列)で区切られた複数アイテムのストリングを取り各アイテムを配列に入れます。スペースで区切られた文章内の単語の抽出などに使用します。

◎例:スペースで区切って配列へ入れる


<?php
$temp = explode(' ', "This is a sentence with seven words");
print_r($temp);
?>

f:id:taro-blog2323:20160807182715p:plain

1-6. 配列から変数に変換するextract関数<


配列から変数に変換するときには『extract関数』を使用します。各キーについて変数名として有効であるか、既存の変数と衝突しないかを確認するときに便利です。


<?php
$array = array("first_name" => "太郎", "last_name" => "田中", "address" => "東京都" );
$result = extract($array);
print_r($result);
echo "
";
  echo $first_name;
  echo "
";
  echo $last_name;
  echo "
";
  echo $address;
?>

結果はこちら。
f:id:taro-blog2323:20160807185843p:plain

1-7. 変数から配列を作成するcompact関数


extractとは逆で変数とその値から配列を作成するときは『compact関数』を使います。

<?php
$fname = "Elizabeth";
$sname = "Windsor";
$address = "Buckingham Palace";
$city = "London";
$country = "United Kingdom";

$contact = compact('fname', 'sname', 'address', 'city', 'country');
print_r($contact);
?>


結果はこちら。
f:id:taro-blog2323:20160807190202p:plain


1-8. 配列の先頭に戻るreset関数


配列を処理するとき次にどの配列のどのエレメントを返すかをメモする配列の内部ポインタが働いています。コードで配列の先頭に戻る必要があるときに『reset関数』を使用します。

1-9. 配列の最後を指定するend関数


配列の最後のエレメントを指定するときには『end関数』を使用します。


いじょー
最後にどばっと詰め込んだ感がありますが、一部サクッとしてる部分もありますがとりあえず6章終了。
つってもこの関数は何に使うってのはわかったけどシャッフル関数以外実感がわかない。。。実践編を進めながら、都度復習して変なところは手直ししていこうと思います。前のわたしを越えたーーーーよっしゃーーーー