2016年12月25日日曜日

PHP/配列の基礎

引き続き、初歩的な部分のおさらいです。



初期化
$array = array("hoge", "fuga")

print_r($array)
配列の中身をわかりやすく出力する
Array
(
  [0] => hoge
  [1] => fuga
)

$array[0]
配列の要素を返す

echo $array
間違った使いたで、Arrayと出力される。「Array to string conversion」warningが出る

array_push($array , "xxx") or $array[] = "xxx"
配列の末尾に要素を追加する。要素数は柔軟に変更される。
array_pop(), array_shift(), array_unshift()といった関数もある

要素数の上限
PHP4系=>65536個まで,PHP5系=>4294967296個まで
つまり、 PHP4系=>16bit個まで,PHP5系=>32bit個まで

要素の型
何でもいい。
サクッとサンプルプログラムを書く分には楽なんですが、大規模開発時の変数管理や処理速度はどうなのだろうか。。。

count($array)
要素の個数を返す

配列の要素の削除
unset($array[2])
後ろに要素があった場合でも、要素番号は繰り上がらない。
この場合、count()関数の返り値と配列の最大要素番号は関連性がなくなる。

explode("区切り文字", "文字列")
文字列を区切り文字で分割した配列を返す
メールアドレスチェックなんかで、@で分割して要素数が2か判定という使い方もできるか。
しかし、調べてみると、[mb_]substr_count("被検索文字列" , "検索文字列")という関数の方がわかりやすそうでした。

空行を含む入力の読み込み
<?php
while( $input = fgets(STDIN) ) {
    // 配列に$inputの値を追加
    $array[] = trim($input);
}
print_r($array);
?>

添字を連番で振り直す
array_values / array_merge

配列の並び替え
sort / rsort
配列のvalueのソートです。
連想配列に対して、このメソッドを使うとただの配列になってしまうので注意

日本語のソート
「ひらがな、カタカナ、漢字、全角数字」の順らしい
言われてみれば当たり前ですが、漢字のソートは読み仮名ではなく、文字コード順

asort / arsort / ksort / krsort
連想配列の配列
asort / arsort => valueの並び替え
ksrot / krsrot => keyの並び替え

foreach ( $array as $value)
あえていうほどでもないforeach

foreach ( $array as $key => $value)
keyも取得したい場合

0 件のコメント:

コメントを投稿