2015-10-07 45 views
-1

我想要的結果:建設一個PHP數組

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 
    ) 
+1

它是如何打破陣列? – vico

+0

如果你'var_dump'結果,你會看到你的錯誤。做一個'var_dump'並告訴我們結果。 – CodeGodie

+1

你的代碼真的很混亂,正確地編碼和縮進一個項目真的有助於調試這樣的 –

回答

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) 
+0

這個'條件'不在舊的數組中,但是這很有幫助! – vico

相關問題