配列が1つあり、特定の1つの値の位置を取得したい
例:
$my_array = array(0,2,5,3,7,4,5,2,1,6,9);
私の検索は5番です。配列内の5番の位置は(2と6 )でした。
関数を呼び出すとarray_search
、常に配列witchの最初の位置が2になります。
とにかく特定の価値の2つの鉱石の位置を取得することはありますか?
すべてのキーを返す必要があるオプションの検索パラメーターとともにarray_keysを使用します。
$matches = array_keys($my_array, 5);
array_keysの2番目のパラメーターを見てください。一致するキーのみを取得できます$search_value
配列をループするだけです。
/* Searches $haystack for $needle.
Returns an array of keys for $needle if found,
otherwise an empty array */
function array_multi_search($needle, $haystack) {
$result = array();
foreach ($haystack as $key => $value)
if ($value === $needle)
$result[] = $key;
return $result;
}
$result = array();
foreach ($array as $key => $value)
{
$result[$value] =implode(',',array_keys($array,$value))
}
echo '<pre>';
print_r($result);
キーとしての値とコンマで区切られた値としてのそれらの出現を含む配列が得られます