1
1

More than 3 years have passed since last update.

PHP 配列関数の勉強

Last updated at Posted at 2019-12-24

配列操作の勉強用メモ。

array_column

・配列inputの中からcolumn_keyで指定した単一のカラムの値を返す。
・index_keyも指定すると、入力配列内のカラムindex_keyの値に基づいて結果を並び替えることができる。

array_column ( array $input , mixed $column_key [, mixed $index_key = NULL ] ) : array
<?php
// データベースから返ってきたレコードセットの例
$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);

$first_names = array_column($records, 'first_name');
print_r($first_names);

/*
Array
(
    [0] => John
    [1] => Sally
    [2] => Peter
)
*/
?>

array_map

・指定した配列の要素にコールバック関数を適用する。
・$array1の各要素にcallback関数を適用した後、その全ての要素を含む配列を返す。
・非破壊的メソッド

array array_map ( callable $callback , array $array1 [, array $array2] )
function root($n)
{
    return $n * $n;
}

$a = array(1, 2, 3);
$b = array_map("root", $a);
print_r($b);

/*
Array
(
    [0] => 1
    [1] => 4
    [2] => 9
)
*/

配列の配列を生成

nullをコールバック関数にすることで、配列の配列を作成することができる。

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");

$c = array_map(null, $a, $b);
print_r($c);

/*
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
        )
)
*/
?>

list

・配列と同様の形式で、複数の変数への代入を行う。
・関数でなく言語構造。
・数値添字の配列でのみ動作する。添字は 0 から始まることを想定。

list ( mixed $var1 [, mixed $... ] ) : array
<?php

$info = array('コーヒー', '茶色', 'カフェイン');

// すべての変数の取得
list($drink, $color, $power) = $info;
echo "$drink の色は $color で、$power が含まれています。\n";

// 一部の変数の取得
list($drink, , $power) = $info;
echo "$drink には $power が含まれています。\n";

// 三番目のみの取得
list( , , $power) = $info;
echo "$power 欲しい!\n";

// list() は文字列では動作しません
list($bar) = "abcde";
var_dump($bar); // NULL
?>

使用例:配列を一気に変数に代入


<?php
$conn = pg_pconnect("dbname=hoge");

$result = pg_query($conn, "select name, email from test_tab");

while (list($name, $email) = pg_fetch_row($result)) {
    echo $name . "/" . $email . "\n";
}
?>

implode

・配列要素を文字列により連結する。
・すべての配列要素の順序を変えずに、各要素間に glue 文字列をはさんで 1 つの文字列にして返す。

implode ( string $glue , array $pieces ) : string
<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

// 空の配列を使うと空文字列となります
var_dump(implode('hello', array())); // string(0) ""
?>

使用例:listの作成


<?php
$elements = array('a', 'b', 'c');

echo "<ul><li>" . implode("</li><li>", $elements) . "</li></ul>";

/*
<ul><li>a</li><li>b</li><li>c</li></ul>
*/
?>
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1