Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: d91 en 6 Noviembre 2017, 04:54 am



Título: Ayuda para construir un json desde array
Publicado por: d91 en 6 Noviembre 2017, 04:54 am
Hola estoy trajando con yii2, y necesito construir un json, a partir de algunos select dinamicos que voy alcanzando en cascada, pero al llegar al segundo for ya no me inserta el array correspondiente aunque las consultas si las va haciendo ya que he debugeado un poco alguien me podria ayudar: (donde esta el var_dump, ya no me agrega otro array)
Código
  1. $cuestionario = (new \yii\db\Query())
  2.                    ->select(['*'])
  3.                    ->from('CUESTIONARIOS')
  4.                    ->where(['ID_CUESTIONARIO' => $id])
  5.                    ->all();
  6.  
  7.    foreach ($cuestionario as $key => $value) {
  8.  
  9.        $data = array($key => $value);
  10.    }
  11.  
  12.                          // var_dump($cuestionario['ID_CUESTIONARIO']);
  13.                      //die();
  14.     $area = (new \yii\db\Query())
  15.                      ->select(['*'])
  16.                      ->from('AREAS')
  17.                      ->where(['ID_CUESTIONARIO' =>$cuestionario[0]['ID_CUESTIONARIO']])
  18.                      ->all();
  19.  
  20.  
  21.      /* obtenemos ahora las subareas de cada area*/                      
  22.  
  23.     for ($i=0; $i < count($area); $i++) {
  24.  
  25.          $data[0]['AREAS'] =  $area[$i];
  26.  
  27.                        $subarea = (new \yii\db\Query())
  28.                          ->select(['*'])
  29.                          ->from('SUB_AREAS')
  30.                          ->where(['ID_AREA' => $area[$i]['ID_AREA']])
  31.                          ->all();
  32.  
  33.  
  34.        /* Obtenemos ahora las preguntas de cada subarea*/
  35.  
  36.                    for ($j=0; $j < count($subarea); $j++) {
  37.  
  38.                          $data[0]['AREAS'][$i]['SUBAREAS'] = $subarea[$j];
  39.  
  40.                          $preg = (new \yii\db\Query())
  41.                            ->select(['*'])
  42.                            ->from('PREGUNTAS')
  43.                            ->where(['ID_SUB_AREA' => $subarea[$j]['ID_SUB_AREA']])
  44.                            ->all();
  45.  
  46.                                    var_dump( $data[0]['AREAS'][$i]['SUBAREAS']);die();
  47.  
  48.        /*Obtenemos ahora las respuestas de cada pregunta */
  49.  
  50.                            for ($s=0; $s < count($preg); $s++) {
  51.  
  52.                                    $data[0]['AREAS'][$i]['SUBAREAS'][$j]['PREGUNTAS'] = $preg[$s];
  53.  
  54.  
  55.                                    $resp = (new \yii\db\Query())
  56.                                        ->select(['*'])
  57.                                        ->from('RESPUESTAS')
  58.                                        ->where(['ID_PREGUNTA' => $preg[$s]['ID_PREGUNTA']])
  59.                                        ->all();
  60.  
  61.        /*Por ultimo agregamos las respuesta a cada pregunta */
  62.                                        for ($x=0; $x < count($resp) ; $x++) {
  63.  
  64.                                              $data[0]['AREAS'][$i]['SUBAREAS'][$j]['PREGUNTAS'][$s]['RESPUESTA'] = $resp[$x];                    
  65.                                        }                            
  66.                              }
  67.                    }
  68.       }
  69.  
  70.       return Json::encode($data);
  71.