【问题标题】:building a php array构建一个php数组
【发布时间】:2015-10-07 17:36:34
【问题描述】:

我想要的结果:

Array (
    [search] => *stev*
    [meta_query] => Array (
        [relation] => OR
        [0] => Array (
            [key] => category
            [value] => Accounting
            [compare] => LIKE
        )
        [1] => Array (
            [key] => category
            [value] => Appraisal
            [compare] => LIKE
        )
    )
)

我得到的结果:

Array (
    [search] => *stev*
    [0] => Array (
        [meta_query] => Array (
            [relation] => OR
            [0] => Array (
                [0] => Array (
                    [key] => category
                    [value] => Accounting
                    [compare] => LIKE
                )
                [1] => Array (
                    [key] => category
                    [value] => Appraisal
                    [compare] => LIKE
                )
            )
        )
    )
)

我使用的代码:

$constArray =array();
      foreach($filter as $item){
        array_push($constArray,array('key'=>'category','value'=>$item,'compare'=>'LIKE'));
      }
      $filterArray=array('meta_query' =>array('relation'=>'OR',$constArray));
array( 
        'search' => '*' . $search . '*' ,$filterArray
      )

如何去掉多余的数组指针?

最终解决方案

    $filterArray = array('relation' => 'OR');
    foreach ($filter as $item) {
        array_push($filterArray, array(
            'key' => 'category', 
            'value' => $item, 
            'compare' => 'LIKE'
        ));
    }
    array( 
        'search' =>  '*' . $search . '*' ,
        'meta_query' => $filterArray
      )

【问题讨论】:

  • 它是如何破坏数组的?
  • 如果您var_dump 结果,您将看到您的错误。执行var_dump 并向我们展示结果。
  • 你的代码真的很乱,正确编码和缩进项目真的有助于调试这样的问题

标签: php arrays wordpress


【解决方案1】:

你忘了设置数组键,试试这个:

$final = array(
    'search' => '*stev*',
    'meta_query' => array(
        'relation' => 'OR',
        "conditions" => array()
    )
);

$filter = array("Accounting", "Appraisal");
foreach ($filter as $item) {
    $final['meta_query']['conditions'][] = array(
        'key' => 'category',
        'value' => $item,
        'compare' => 'LIKE'
    );
}

var_dump($final);

结果:

array (size=2)
  'search' => string '*stev*' (length=6)
  'meta_query' => 
    array (size=2)
      'relation' => string 'OR' (length=2)
      'conditions' => 
        array (size=2)
          0 => 
            array (size=3)
              'key' => string 'category' (length=8)
              'value' => string 'Accounting' (length=10)
              'compare' => string 'LIKE' (length=4)
          1 => 
            array (size=3)
              'key' => string 'category' (length=8)
              'value' => string 'Appraisal' (length=9)
              'compare' => string 'LIKE' (length=4)

【讨论】:

  • conditions 不在旧数组中,但这很有帮助!
猜你喜欢
  • 2015-12-10
  • 1970-01-01
  • 1970-01-01
  • 2011-07-17
  • 1970-01-01
  • 1970-01-01
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多