如何从另一个数组的值构建PHP中多维数组的键?

时间:2016-10-12 07:19:56

标签: php arrays multidimensional-array

我有一个问题,我正在努力解决。

我有两个数组。

一个是

$array1 = array('eligibility', 'eligibility_section');

但它可能是未知的长度。

另一个希望在其键中包含上面的值。例如它可能看起来像这样。

$array2 = array('eligibility' => array('eligibility_section' => 'some_val));

我需要一种方法来检查array1中的值是否作为array2中的键存在,并且它们必须以相同的顺序存在。例如。从上面的例子中,如果array1的顺序是:

array('eligibility_section', 'eligibility'); 

该方法将返回false。

很抱歉,如果这是一个愚蠢的问题,但我很累。

2 个答案:

答案 0 :(得分:4)

希望以下代码能解决您的问题。

// src/AppBundle/Entity/AcmeEntity.php
use AppBundle\Validator\Constraints as AcmeAssert;

/**
* @AcmeAssert\CustomConstraint
*/
class AcmeEntity
{
    // ...
    protected $name;

    // ...
}

答案 1 :(得分:1)

这可以通过简单的array reduction

来完成
<%= form_for(@user, url: signup_path) do |f| %>

使用PHP 7 null coalescing operator这可以缩短到这一点,但请注意,您的值不能为$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'; ,以便返回正确的结果:

null