如何在PHP中搜索数组中的多个值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (36)

我需要从重复的值中获取密钥。我试图使用array_search并且工作正常,但是我只有第一个值作为命中。

我需要从重复值中获取两个键,在这种情况下为0和2.搜索结果作为数组输出会很好。

有没有一个PHP函数来做到这一点,或者我需要编写一些多个循环来做到这一点?

$list[0][0] = "2009-09-09";
$list[0][1] = "2009-05-05";
$list[0][2] = "2009-09-09";
$list[1][0] = "first-paid";
$list[1][1] = "1";
$list[1][2] = "last-unpaid";

echo array_search("2009-09-09",$list[0]);
提问于
用户回答回答于

你想要array_keys与搜索值

array_keys($list[0], "2009-09-09");

这将返回一个具有指定值的键数组,在你的情况[0,2]。如果你也想找到重复项,你可以先用array_unique进行传递,然后在原始数组上使用array_keys迭代该数组; 返回长度> 1的数组的任何东西都是重复的,结果是存储重复项的键。就像是...

$uniqueKeys = array_unique($list[0])

foreach ($uniqueKeys as $uniqueKey)
{
  $v = array_keys($list[0], $uniqueKey);

  if (count($v) > 1)
  {
    foreach ($v as $key)
    {
      // Work with $list[0][$key]
    }

  }
}
用户回答回答于

扫码关注云+社区

领取腾讯云代金券