by shigemk2

当面は技術的なことしか書かない

array_keys vs array_search

PHPマニュアル:array_search:指定した値を配列で検索し、見つかった場合に対応するキーを返す
PHPマニュアル:array_keys:配列のキーすべて、あるいはその一部を返す

似て非なるもの、というべきでしょうか。

<?php
// 指定した要素に該当する配列のキーを配列で返す
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));

// 指定した要素に該当する配列の最初のキーを返す(数字で)
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_search("red", $array) . PHP_EOL);
var_dump(array_search("red", $array));

// 最初のキーを返すので、複数マッチしても最初のキーしか返さない
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_search("blue", $array) . PHP_EOL);

結果

Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
1
int(1)
0