【PHP】配列の操作まとめ

PHP PHP

【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

コメント