【发布时间】: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
$a=array("a"=>"1","b"=>"2","c"=>"2");
echo array_search("2",$a);
?>
上面的代码只返回b,我怎样才能让我返回b和c?
【问题讨论】:
正如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
)
【讨论】:
我添加这个以防有人觉得它有帮助。如果您正在使用多维数组。 假设你有这个
$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]
希望这会有所帮助。
【讨论】:
使用 array_keys 代替:
<?php
$a=array("a"=>"1","b"=>"2","c"=>"2");
echo array_keys(array($a, "2");
?>
【讨论】: