2013-03-06 57 views
0

我想在另一个数组中打印一个联合数组。PHP:将联合数组打印到另一个数组中

下面是代码:

“$ posted_fields”,是多个阵列组成的assosiative阵列,每个阵列包含一个张贴字段的数据。语法如下所示:my post field(checkboxes)= array('key'=>'FIELD'的名称','value'=>'array(FIELD VALUES)',...)。

环路就像这样:

$posted_fields = array(); 
foreach($post_values as $field_name => $field_value){ 


      $posted_fields[] = array('key' => $field_name, 
      'value' => $field_value, 
      'compare' => 'IN', 
      ); 



} 

我得到以下结果:

$posted_fields = array(
        array 
        (
         "key" => "property_country", 
         "value" => array 
          (
           "es", 
           "fr", 
           "ca", 
          ), 

         "compare" => "IN" 
        ),array 
        (
         "key" => "property_city", 
         "value" => array 
          (
           "montreal" 
          ), 

         "compare" => "IN" 
        ) 

      ); 

这是我想做的事:

“的$ args” 是assosiative阵列在那里我想打印“$ posted_field”结果。

$args = array(
      'posts_per_page ' => -1, 
      'post_type' => 'property', 
      'post_status' => 'publish',    
      'meta_query' => array(
       'relationship' => 'AND', 

       $posted_fields 

      ), 
      'fields' => 'ids', 
     ); 

而不必此

$args = array(
      'posts_per_page ' => -1, 
      'post_type' => 'property', 
      'post_status' => 'publish',    
      'meta_query' => array(
       'relationship' => 'AND', 
       array(
        array 
        (
         "key" => "property_country", 
         "value" => array 
          (
           "es", 
           "fr", 
           "ca", 
          ), 

         "compare" => "IN" 
        ),array 
        (
         "key" => "property_city", 
         "value" => array 
          (
           "montreal" 
          ), 

         "compare" => "IN" 
        ) 

       ) 
      ), 
      'fields' => 'ids', 
     ); 

我想要得到的结果是这样的:

$args = array(
      'posts_per_page ' => -1, 
      'post_type' => 'property', 
      'post_status' => 'publish',    
      'meta_query' => array(
       'relationship' => 'AND', 

        array 
        (
         "key" => "property_country", 
         "value" => array 
          (
           "es", 
           "fr", 
           "ca", 
          ), 

         "compare" => "IN" 
        ),array 
        (
         "key" => "property_city", 
         "value" => array 
          (
           "montreal" 
          ), 

         "compare" => "IN" 
        ) 

       ), 

      'fields' => 'ids', 
     ); 

这里的区别是后[ '关系'=> '和'] 。我想要'['relationship'=>'AND',array(),array(),...]而不是['relationship'=>'AND',array(array(),array(), ...]

我希望信息是明确的

谢谢

回答

0

这可以帮助你更接近解决方案,我以前用过下面的功能扩展多维数组:

$input_size = (count($multidim_array)); 
for($row = 0; $row < $input_size; $row++) 
    { 
    echo "the row number $row<br>"; 

     foreach($multidim_array[$row] as $key => $value) 
     { 
      echo "key $key, value $value<br>"; 
     } 
    } 
相关问题