twitter facebook

phpで連想配列の指定のキーだけを抽出+重複をなくす

以下の一連の流れを覚えておくと、foreach文 がだいぶ省略できて、ソースがすっきりです。
以下のような連想配列 $array があった場合。
print_r($array);

Array
(
    [0] => Array
        (
            [name] => yamada
            [blood] => A
        )

    [1] => Array
        (
            [name] => tanaka
            [blood] => B
        )

    [2] => Array
        (
            [name] => sato
            [blood] => A
        )

    [3] => Array
        (
            [name] => kato
            [blood] => O
        )

)

指定のキーだけを抜き出す。

$array2 = array_column($array, "blood") ;
print_r($array2);
Array
(
    [0] => A
    [1] => B
    [2] => A
    [3] => O
)

さらに重複をなくす。

$array3 = array_unique($array2);
print_r($array3);
Array
(
    [0] => A
    [1] => B
    [3] => O
)

ついでにインデックスを詰める。

$array4 = array_values($array3);
print_r($array4);
Array
(
    [0] => A
    [1] => B
    [2] => O
)

さらにソートもする。

さらに asortarsort 関数を使えば、ソートもできます。
arsort($array4) ; // 逆順ソート
print_r($array4) ;
Array
(
    [2] => O
    [1] => B
    [0] => A
)
AUTHOR
@hiropon
最終更新日 2018/09/18
FAVORITE good stock
LINK TAG
記法を見る