【问题标题】:PHP Array Search Return Multiple KeysPHP 数组搜索返回多个键
【发布时间】:2015-10-11 03:36:31
【问题描述】:

我正在尝试搜索一个数组并返回多个键

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

上面的代码只返回b,我怎样才能让我返回b和c?

【问题讨论】:

  • 通过研究和不断参考手册
  • 使用array_keys函数

标签: php arrays php-5.5


【解决方案1】:

正如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?
【解决方案2】:

我添加这个以防有人觉得它有帮助。如果您正在使用多维数组。 假设你有这个

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

您想在user_id 中找到email_id 2。 你可以这样做

        print_r(array_keys(array_column($a, 'user_id'), 2));

这将返回[0,1]

希望这会有所帮助。

【讨论】:

    【解决方案3】:

    使用 array_keys 代替:

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

    【讨论】:

    • 感谢 taxicala 的回答,但我正在寻找的东西可以让我找到单词的所有实例,而不仅仅是第一个实例。
    • 这就是 array_keys 的作用
    猜你喜欢
    • 2017-11-16
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    相关资源
    最近更新 更多