PHP 配列操作あれこれ

PHP配列あれこれ

定義のやりかたからいろいろなよく使いそうな基本的なところ。

PHPの配列定義

数字定義

$ary = array(1, 2, 3);
echo $ary[0]; // 1

文字列で定義

$ary = array("one", "two", "three");
echo $ary[2]; // three

PHP5.4からかっこを省略して定義できます

$ary = [1, 2, 3];
echo $ary[0]; // 1

$ary = ["one", "two", "three"];
echo $ary[2]; // two

連想配列

PHPの配列では連想配列として任意のキーを利用できます。

$ary = array(
    'hoge' => 1,
    59     => 2,
    'abc'  => 3,
);
echo $ary['hoge']; // 1
echo $ary[59]; // 2

foreachで全配列に対して処理

配列全てに対してforeachでアクセスを行う

$ary = array(1, 2, 3, 4, 5, 6, 7, 8);
foreach ($ary as $a)
{
    echo $a . ', ';
}
// OUTPUT: 1, 2, 3, 4, 5, 6, 7, 8,

Key-Valueの値をそれぞれ取得する

$ary = array(
    'one' => 'abc',
    'two' => 'def',
    3     => 'ghi'
);
foreach ($ary as $vlue => $key)
{
    echo "{$key}-{$value}, ";
}
// OUTPUT: one-abc, two-def, 3-ghi,

配列に対する操作

任意の場所の連想配列を切り取る

array_sliceは配列を任意の場所で切り取ります。

$ary = array('one'=>1, 'two'=>2, 'three'=>3, 'four'=>4, 'five'=>5);

// 先頭のキー取得
$arraykey = array_slice($ary, 1, 2); // array('two'=>2, 'three'=>3)

// 最後のキー取得
$arraykey = key(array_slice($ary, -1, 1)); // array('five'=>5)

配列の中身を内容をくっつける

implede関数に配列を渡すと中身を第一引数の値を間にはさんで文字列にしてくれます。

$ary = array(1, 2, 3, 4, 5, 'six');
$lineData = implode("=-=", $ary); // 1=-=2=-=3=-=4=-=5=-=six

指定の文字列で区切って配列にする

implede関数と逆で第一引数の値で区切って配列にしてくれます。

$lineData = "1=-=2=-=3=-=4=-=5=-=six";
$arrayData = explode("=-=", $lineData); // array("1", "2", "3", "4", "5", "six");