【问题标题】:Wordpress & PHP Looping within array of arrray that is not named?未命名的数组数组中的Wordpress和PHP循环?
【发布时间】:2021-05-26 13:15:59
【问题描述】:

希望这是一个简单的问题。当循环未命名时,我找不到关于如何在数组中定位数组的答案。例如,我最终需要得到这样的结果:

      $args = array(
            'role' => 'artist',
            'orderby' => 'meta_value',
            'order' => 'ASC',
            'meta_query' => array(
                'relation' => 'AND',
                array(
                    'relation' => 'OR',
                    // $medium_array,
                    array(
                        'key' => 'artist_medium',
                        'value' => 'Wood',
                        'compare' => 'LIKE',
                    ),
                    array(
                        'key' => 'artist_medium',
                        'value' => 'Painting',
                        'compare' => 'LIKE',
                    )
                ),
                array(
                    'key' => 'studio_region_location',
                     'value' => 'London',
                     'compare' => 'LIKE',

)
            )
        );

我一直在做的是成功循环到 $meta_query[],但我不知道如何进入“meta_query”中的第二个数组。我尝试了以下但没有运气:


$_POST['mediumType'] = array('Wood', 'Painting');
$_POST['locationType'] = array('London');

 $meta_query = array(
            'relation' => 'AND',
            array('relation' => 'OR')
        );

        foreach ($_POST['mediumType'] as $val){
            $meta_query[][] = array(
                'key' => 'artist_medium',
                'value'=> $val,
                'compare' =>'LIKE'
            );
        }

        foreach ($_POST['locationType'] as $loc){
            $meta_query[] = array(
                'key' => 'studio_region_location',
                'value'=> $loc,
                'compare' =>'LIKE'
            );
        }

所以希望有人可以提供帮助。我知道我在这里遗漏了一些明显的东西,但是通过谷歌搜索,我只能找到如何定位该子数组(如果它被命名)。这是 print_r 报告的上述代码提供的内容:

Array ( [role] => artist [orderby] => meta_value [order] => ASC [meta_query] => Array ( [relation] => AND [0] => Array ( [relation] => OR ) [1] => Array ( [0] => Array ( [key] => artist_medium [value] => Fabric - decorative [compare] => LIKE ) ) [2] => Array ( [0] => Array ( [key] => artist_medium [value] => Metal [compare] => LIKE ) ) [3] => Array ( [key] => studio_region_location [value] => Dublin / Marlborough / Jaffrey [compare] => LIKE ) ) ) 

谢谢!

【问题讨论】:

  • 我很确定,一旦进入嵌套数组,只要你不调用数组键relationkeyvalue,你可以将它命名为任何意思您可以稍后定位它。尝试使用$meta_query = array('relation' => 'AND', 'FAKE_KEY' => array('relation' => 'OR'));
  • 好吧,print_r 已经向您展示了这些键是什么——它们是数字。那么您是否尝试过使用它们?
  • 我尝试了数字和假键,但它似乎没有在 uh 数组中添加任何其他数组,除了一个;我敢肯定是因为我错过了一些东西。这是我使用的: ach ($_POST['mediumType'] as $val){ $meta_query[1] = array( 'key' => 'artist_medium', 'value'=> $val, 'compare' => '喜欢');
  • 我觉得这个问题不清楚。为什么我们不能有minimal reproducible example$_POST 中有什么内容?根据您的样本$_POST 数据,您想要的确切结果是什么?
  • 抱歉,刚刚更新了一些测试数据。并在顶部获得确切的期望结果。

标签: php arrays wordpress


【解决方案1】:

我明白了,感谢大家的帮助。 :) 数字 假密钥名称有效!

 foreach ($_POST['mediumType'] as $val){
            $meta_query[0][] = array(
                'key' => 'artist_medium',
                'value'=> $val,
                'compare' =>'LIKE'
            );
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多