如何通过其父数组[key]区分[key]和[value]与另一个[key]和[value]?

时间:2017-02-22 12:13:12

标签: php arrays

我希望这是问这个问题的最好方法。不知道如何说出来。我当时认为有一个原生的PHP函数可以确定这一点,这让我觉得我的搜索措辞可能并不是最好的。

我想在我的数组中搜索特定的[key] => [值]。

如果[key] => [value]在我的数组中找到我想得到另一个[key] =>来自其数组父级的[value]。

以下代码中的示例来解释。

示例1:

如果[post_type] = [page]我想从数组[0]获取[activate_layout] = [value]。

示例2:

如果[post_type] = [post]我想从数组[1]中获取[activate_layout] = [value]。

一般概念示例3:

如果[post_type] = [x]我想从其父数组[x]中获取[activate_layout] = [x]。

我的问题是如何通过其父数组[key]区分[key]和[value]与另一个[key]和[value]?

以下是我的数组数据的存储方式。

[post_type_layouts] => Array
        (
            [0] => Array
                (
                    [context] => Array
                        (
                            [option] => Array
                                (
                                    [activate_layout] => 1
                                    [post_type] => page
                                )

                        )

                )

            [1] => Array
                (
                    [context] => Array
                        (
                            [option] => Array
                                (
                                    [activate_layout] => 1
                                    [post_type] => post
                                )

                        )

                )

        )

1 个答案:

答案 0 :(得分:1)

如果我真的了解你的问题,我认为你正在做的解决方案更简单。

我像示例一样关注这个数组:

$arrayTest = [
0 => [
    'context' => [
        'option' => [
            'post_type' => 'page',
        ],
    ],
],

1 => [
    'context' => [
        'option' => [
            'post_type' => 'post',
        ],
    ],
],
];

然后,浏览并获得post_type的父值,我只创建foreach行为,我使用switch steatment检查post_type值。它是这样的:

foreach ($arrayTest as $subLevel1) {
switch ($subLevel1['context']['option']['post_type']) {
    case 'page':
        $subLevel1['context']['option']['active_layout'] = 0;
        break;

    default:
        $subLevel1['context']['option']['active_layout'] = 1;
        break;
}
print_r($subLevel1);
}

我的回报就像上面的示例,我认为这可以解决您的问题:

    php -f testArray.php 
    Array
      (
        [context] => Array
          (
            [option] => Array
              (
                [post_type] => page
                [active_layout] => 0
              )
          )
     )
     Array
     (
       [context] => Array
         (
           [option] => Array
             (
               [post_type] => post
               [active_layout] => 1
             )
           )
         )

好的代码!