2016-11-10 4 views
0

に適切な値を持つ配列を配置する方法現在、私は、配列に値を代入しようとしています、これは私の既存のアレイは、私はそれをこのような出力をしたい。..がメインアレイ

Array 
(
    [detals] => Array 
     (
      [0] => Array 
       (
        [make] => xyx 
        [yeardeta] => 2001 
       ) 

      [1] => Array 
       (
        [model] => Array 
         (
          [0] => Test one 
          [1] => test fix 
          [2] => Hamour 
          [3] => Imagica 
         ) 

       ) 

      [2] => Array 
       (
        [make] => xyx 
        [yeardeta] => 2002 
       ) 

      [3] => Array 
       (
        [model] => Array 
         (
          [0] => Test Two 
         ) 

       ) 
     ) 
) 

のように見える..です

Array 
(
    [detals] => Array 
     (
      [0] => Array 
       (
        [make] => xyx 
        [yeardeta] => 2001 
        [model] => Array 
         (
          [0] => Test one 
          [1] => test fix 
          [2] => Hamour 
          [3] => Imagica 
         ) 
       ) 

      [2] => Array 
       (
        [make] => xyx 
        [yeardeta] => 2002 
        [model] => Array 
         (
          [0] => Test Two 
         ) 

       ) 


     ) 

) 

そして、これは私の完全なPHPコード

<?php 
$data = array(); 
$cat = get_terms('car_category'); 
     foreach ($cat as $catVal) { 
        $term_id =$catVal->term_id; 

        $get_query = $wpdb->get_results("SELECT DISTINCT meta_value FROM wp_postmeta as pm 
         LEFT JOIN wp_term_relationships as tr 
         ON tr.object_id=pm.post_id 
         WHERE pm.meta_key='car_year' 
         AND tr.term_taxonomy_id='".$term_id."'"); 

       foreach ($get_query as $key => $value) { 

        $data[] = array('make'=>$catVal->term_id,'yeardeta'=>$value->meta_value); 

         $get_query = $wpdb->get_results("SELECT post_title FROM wp_posts as p 
           LEFT JOIN wp_postmeta as pm 
           ON p.id=pm.post_id 
           LEFT JOIN wp_term_relationships as tr 
           ON tr.object_id=pm.post_id 
           WHERE pm.meta_key='car_year' 
           AND pm.meta_value='".$value->meta_value."' 
           AND tr.term_taxonomy_id='".$term_id."'"); 
         $str = array(); 
         foreach ($get_query as $key => $value) { 
           $str[] = $value->post_title; 
         } 

         $data[] = array('model'=>$str); 

       } 

       $term_id =$catVal->term_id; 

       $main_array = array('detals'=>$data); 

      print_r($main_array); 

     } 

?> 

である私はこれをどのように操作を行うことができ、上記説明してきた出力にしたいですか?

答えて

0

私は怒鳴るを貼り付けコードを変更しました。ループでは$data[]を2回使用して新しい配列要素を挿入しました。必要に応じて変更し、(私はテストができませんでした)次のコードを確認してください、私は任意の明確化のために知ってみましょう:

<?php 
$data = array(); 
$cat = get_terms('car_category'); 
foreach ($cat as $catVal) { 
    $term_id =$catVal->term_id; 

    $get_query = $wpdb->get_results("SELECT DISTINCT meta_value FROM wp_postmeta as pm 
     LEFT JOIN wp_term_relationships as tr 
     ON tr.object_id=pm.post_id 
     WHERE pm.meta_key='car_year' 
     AND tr.term_taxonomy_id='".$term_id."'"); 

    foreach ($get_query as $key => $value) { 
     $make = $catVal->term_id; 
     $yeardata = $value->meta_value;      

     $get_query_model = $wpdb->get_results("SELECT post_title FROM wp_posts as p 
       LEFT JOIN wp_postmeta as pm 
       ON p.id=pm.post_id 
       LEFT JOIN wp_term_relationships as tr 
       ON tr.object_id=pm.post_id 
       WHERE pm.meta_key='car_year' 
       AND pm.meta_value='".$value->meta_value."' 
       AND tr.term_taxonomy_id='".$term_id."'"); 
     $model = array(); 
     foreach ($get_query_model as $model_key => $model_value) { 
      $model[] = $model_value->post_title; 
     } 

     $data[] = array('make'=>$make,'yeardata'=>$yeardata, 'model'=>$model); 
    } 

    $term_id =$catVal->term_id; 

    $main_array = array('detals'=>$data); 

    print_r($main_array); 

} 
?> 
+0

私はあなたのコードを試してみましたが、それは同じ配列を何度も繰り返します。 – maddy

+0

申し訳ありませんが、しばらくしてからあなたのシナリオを再現します。あなたが修正することができた場合、その間、私は –

+0

はい私は今それを修正したいを知ってみましょう。私は私の質問のplz – maddy

0

代わりの

$data[] = array('model'=>$str); 

$data['model'] = $str; 

上記と交換1つは$data['newkey']の内部に新しい配列を作成します。 >$datamodelキーを使用 - 追加する

関連する問題