我有一个想解决的问题。
我有两个数组。
一个是
$array1 = array('eligibility', 'eligibility_section');
但这长度可能是未知的。
另一个希望在其键中包含上面的值。例如,它可能看起来像这样。
$array2 = array('eligibility' => array('eligibility_section' => 'some_val));
我需要一种方法来检查array1中的值是否作为array2中的键存在,并且它们必须以相同的顺序存在。例如,如果上面的示例中array1的顺序为:
array('eligibility_section', 'eligibility');
该方法将返回false。
抱歉,这是一个愚蠢的问题,但我很累。
这可以通过简单的数组归约来完成:
$array1 = array('eligibility', 'eligibility_section');
$array2 = array('eligibility' => array('eligibility_section' => 'some_val'));
$result = array_reduce($array1, function ($subject, $key) {
return is_array($subject) && array_key_exists($key, $subject) ? $subject[$key] : false;
}, $array2);
echo $result ? 'true' : 'false';
使用PHP 7空合并操作符,可以将其简化为此操作,但是请注意,您的值一定不能null
为此返回正确的结果:
array_reduce($array1, function ($s, $k) { return $s[$k] ?? false; }, $array2)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句