PHP:找出关联数组中具有相同值的所有键

时间:2018-05-19 18:34:50

标签: php

PHP中是否有任何函数可以帮助找出关联数组中具有相同值的所有键?例如,有一个数组如下:

  

$ data1 = array(“Peter”=&gt;“1”,“Ann”=&gt;“1”,“Susan”=&gt;“2”,“Tom”=&gt;“3”); < / p>

我只想要值为“1”的键(即Peter和Ann)。感谢帮助。

2 个答案:

答案 0 :(得分:3)

您可以将array_keys与可选的第二个参数一起使用:

  

a = [1,2,['c','d'],3,4] for i in a: if type(i) == list: t = a.index(i) ind = a[t] #idx.append(ind) a.remove(i) new = [] for i in ind: new1 = [] for j in a: new1.append(j) new1.insert(t,i) new.append(new1) new >> [[1, 2, 'c', 3, 4], [1, 2, 'd', 3, 4]] 返回数组中的键,数字和字符串。

     

如果指定了可选的array_keys(),则仅返回该值的键。否则,返回数组中的所有键。

答案 1 :(得分:1)

使用array_intersect和array_keys。

$data1 = array("Peter" => "1", "Ann" => "1", "Susan" => "2", "Tom"=> "3");
$find = 1;
Var_dump(array_keys(array_intersect($data1, [$find])));

https://3v4l.org/DICDB