【PHP】配列の操作まとめ 前編
array_count_values() 要素の数をカウントする関数
$array = array(1,2,3,2,3);
$array_value = array_count_values($array);
print_r($array_value);//Array( [1] => 1,[2] => 2,[3] => 2 )
配列が文字だったら、、
$array = array("A","B","C","B","C");
$array_value = array_count_values($array);
print_r($array_value);//Array( [A] => 1,[B] => 2,[C] => 2 )
指定した要素を持つkeyを取得 array_keys()
$array = array(1,2,3,2,3);
$keys = array_keys($array,3);
print_r($keys);//Array( [0] => 2,[1] => 4) $array[2][4]に3がある。
max()1番大きな要素を取得する関数
$array = array(1,2,3,2,3);
$max_value = max($array);
echo $max_value; //3を出力
sort並び替え
asort(昇順),arsort(降順)
$array = array(1,2,3,2,3);
asort($array);//asortは昇順 $arrayは(1,2,2,3,3)になる。
arsort($array);//arsortは降順 $arrayは(3,3,2,2,1)になる。
配列の要素を並び替えられたが、keyはそのままなので必要がある場合は、
array_merge() 配列のkeyの振り直し(整える)
$num_list = array(5,9,6,3);
asort($num_list);
print_r($num_list);//Array( [3] => 3,[0] => 5, [2] => 6, [1] => 9)となる
$num_list = array_merge($num_list);
print_r($num_list);//Array([0] => 3,[1] => 5,[2] => 6,[3] => 9)となる
implode, explode
配列を繋いで文字列にしたい場合は、implode
文字列を配列にしたい場合はexplode
$array = array(1,2,3,2,3);
echo implode(" ",$array); //1 2 3 2 3 と出力
echo implode("->",$array);//1->2->3->2->3と出力
$strings = "U.F.O";
print_r(explode("・",$strings));
/*出力
Array
(
[0] => U
[1] => F
[2] => O
)*/
//こんな使い方も
$strings = "03-0000-0000";
list($areacode,$code,$number) = explode("-",$strings);
echo $areacode;//03と出力
配列から削除する array_splice()
配列から指定した要素を削除する array_splice()
$list = array("dog","cat","mouse","gorilla","gazzila");
$list_1 = array_splice($list,1,2);
print_r($list);//Array([0] => dog,[1] => gorilla,[2] => gazzila)
print_r($list_1);//Array([0] => cat,[1] => mouse)
引数はintであることが必要。
【PHP】配列の操作まとめ 後編
配列のランダム操作
array_rand()は引数の配列のkeyをランダムに取り出してくれます。
$go3ke = array('橋幸夫','舟木一夫','西郷輝彦');
/*Array(
[0] => 橋幸夫
[1] => 舟木一夫
[2] => 西郷輝彦
)*/
$ichiban = array_rand($go3ke);
//ランダムに配列のkeyが返る、この場合0~2。
echo $go3ke[$ichiban];
//橋幸夫,舟木一夫,西郷輝彦のいずれかが出力
shuffle()を使えば配列内の要素の順番をシャッフルできます。しかし、keyは0から振り直されてしまうので、keyも維持したい場合は使えません。
$go3ke['MexicanRock'] = '橋幸夫';
$go3ke['HighSchool3rd'] = '舟木一夫';
$go3ke['StarFlamenco'] = '西郷輝彦';
print_r($go3ke);
/*Array(
[MexicanRock] => 橋幸夫
[HighSchool3rd] => 舟木一夫
[StarFlamenco] => 西郷輝彦
)という配列を*/
shuffle($go3ke);//シャッフルします。
print_r($go3ke);
/*Array
( [0] => 舟木一夫
[1] => 西郷輝彦
[2] => 橋幸夫
)*/
//keyは0から振り直され、要素はシャッフルされます。
配列内の同じ要素をまとめる array_unique()
同じ要素をまとめてしまいたいときは、array_unique()!
$numbers = array(1,1,1,1,2,3,3);
print_r(array_unique($numbers));
//Array(
[0] => 1
[4] => 2
[5] => 3
)
スッキリしましたね!
ユニークという言葉、私は「独特の面白さ」のようなユーモラス的な感覚で使っていましたが、「ただひとつだけの」「並ぶもののない」といった意味があるんですね〜。
(ちなみに私は英語音痴です‥)
配列内の要素(int)を合計する array_sum()
$numbers = array(1,1,1,1,2,3,3);
echo array_sum($numbers);
//12
コメント