PHParray_search麻烦

PHP array_search trouble

$data = Array
(
    [68315163] => Donnie1
    [68328887] => Donnie1
    [68353339] => Donnie1
)

我想获取 Donnie1 值的所有键,它只显示第一个

$datum = array_search('Donnie1', $data);

print_r($datum);

我哪里错了?

array_search() 不搜索数组键。它只搜索数组值。

获取这个值是基本的PHP:

$datum = $data['68315163'];

array_search('68315163', $data) return 没有任何用处,因为您要搜索的值不在数组中。

此函数搜索值,return在找到的值处设置键。请参阅 the docs

Array
    (
        [68315163] => Donnie
        [68328887] => Donnie1
        [68353339] => Donnie2
    )
$datum = array_search('Donnie1', $data);

echo $datum;// return only value of given key: 68328887

您向 array_search() 传递了错误的参数。您需要传递数组的值,然后此函数将 return 匹配键;

array_search() 没有 return 数组。它只是 return 的第一个键。

array_keys() 将是此用途的正确函数。它 return 是具有给定值的所有键的数组。

$datum = array_keys($data, "Donnie1");