我想查看一个数组是否具有多次相同的值,例如:
$array=array('val1','val2','val3','val1');
Run Code Online (Sandbox Code Playgroud)
如您所见,在上面的数组中,有2 x val1.要搜索数组是否包含值,我可以使用in_array执行此操作:
$search=in_array('val1',$array);
Run Code Online (Sandbox Code Playgroud)
并且它将返回true,因为val1存在于数组中,但如果多次找到该值,则需要返回true.
您可以利用一个鲜为人知的特性array_keys(),用于将数组的键作为新数组返回(即没有值.)
它接受一个可选的第二个参数,search它允许您规定您希望只返回其值与您的搜索相对应的那些键.所以:
$arr = array('one', 'two', 'one', 'three');
$indexes = array_keys($arr, 'one'); //array(0, 2)
Run Code Online (Sandbox Code Playgroud)