在PHP中搜索数组并返回多个键

5

我试图搜索一个数组并返回多个键

<?php
$a=array("a"=>"1","b"=>"2","c"=>"2");
echo array_search("2",$a);
?>

使用上述代码只返回b,如何使其返回b和c?

2
通过研究和不断参考手册 - Daryl Gill
使用array_keys函数 - Ankur Tiwari
3个回答

9

正如array_search手册中所述:

要返回所有匹配值的键,请使用array_keys()和可选的search_value参数。


例子:

$a=array("a"=>"1","b"=>"2","c"=>"2");
print_r(array_keys($a, "2"));

结果:

Array
(
    [0] => b
    [1] => c
)

谢谢,有没有一种方法可以将输出仅显示为 b、c 或 b c? - Mike Johnston

3
我将翻译此内容:

如果您在处理多维数组时需要帮助,我会很乐意提供帮助。假设您有以下数组:

        $a = array(['user_id' => 2, 'email_id' => 1], ['user_id' => 2, 'email_id' => 2, ['user_id' => 3, 'email_id' => 1]]);

您想要找到用户ID为2的电子邮件ID(email_id)。您可以通过以下方式实现:
        print_r(array_keys(array_column($a, 'user_id'), 2));

这将返回[0,1]
希望这可以帮到您。

1
请使用 `array_keys` 代替:
<?php
$a=array("a"=>"1","b"=>"2","c"=>"2");
echo array_keys(array($a, "2");
?>

谢谢你的回答,taxicala。但是我想要的是能够找到所有我搜索的单词实例,而不仅仅是第一个实例的工具。 - Mike Johnston
这就是array_keys的作用。 - taxicala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接