2017-06-29 2 views
2

Hier ist mein Array, d. H. $ Daten.Wie Komma Separator (,) Wert im Array erhalten?

function generateQuestion($userdata) { 
$module_name = $userdata->module_name; 
$module = new Module(); 
$module->data['*'] = ''; 
$module->where = " module_name = '" . $module_name . "' and is_delete='0'"; 
$module->action = "get"; 
$module_res = $module->process(); 
$data = array(); 
if($module_res['count'] > 0) { 
    foreach ($module_res['res'] as $module_key => $module_value) { 
     $cat = new Category(); 
     $cat->data['*'] = ''; 
     $cat->where = "que_module_id='".$module_value['module_id']."' and is_delete='0'"; 
     $cat->action = "get"; 
     $cat_res = $cat->process(); 

     foreach ($cat_res['res'] as $cat_key => $cat_value) { 
      $question = new Question(); 
      $question->data['*'] = ''; 
      $question->where = "question_cat_id='".$cat_value['que_cat_id']."' and is_delete='0'"; 
      $question->action = "get"; 
      $question_res = $question->process(); 
      foreach ($question_res['res'] as $question_key => $question_value) { 
       $que_ans = ''; 
       if($question_value['question_ans'] == 1) { 
        $que_ans = 'Yes'; 
       } elseif($question_value['question_ans'] == 2) { 
        $que_ans = 'No'; 
       } else { 
        $que_ans = 'N/A'; 
       } 
       $options = explode(',',$question_value['question_options']); 

       $data[$module_value['module_name']][$cat_value['que_cat_id']][$question_value['question_id']] = array(
        'question_name' => $question_value['question_name'], 
        'question_ans' => $que_ans, 
        'question_ans_comments' => $question_value['question_ans_comments'] == ''?'None':$question_value['question_ans_comments'], 
        'question_options' => explode(',',$question_value['question_options']) 
       ); 
      } 
     } 
    } 
    print_r($data);die; 
    //echo json_encode(array("data"=>$data,"status" => "success", 'message' => 'Question Listing')); 
} else { 
    echo json_encode(array("status" => "error", 'message' => 'Module Not Found')); 
} 
} 
    $data[$module_value['module_name']][$cat_value['que_cat_id']] 
[$question_value['question_id']] = array(
        'question_name' => $question_value['question_name'], 
        'question_ans' => $que_ans, 
        'question_ans_comments' => $question_value['question_ans_comments'] == ''?'None':$question_value['question_ans_comments'], 
        'question_options' => explode(',',$question_value['question_options']) 
       ); 

Ausgabe von oben Array:

Array 
(
[Prestart Hand Tools/Electric Power Tool Safety Checks] => Array 
    (
     [3] => Array 
      (
       [1] => Array 
        (
         [question_name] => machine runs correctly no 
          abnormal noise 
         [question_ans] => No 
         [question_ans_comments] => None 
         [question_options] => Array 
          (
           [0] => 1 
           [1] => 2 
           [2] => 3 
           [3] => 4 
          ) 

        ) 

       [4] => Array 
        (
         [question_name] => abc 
         [question_ans] => Yes 
         [question_ans_comments] => None 
         [question_options] => Array 
          (
           [0] => 1 
          ) 

        ) 

      ) 

     [5] => Array 
      (
       [2] => Array 
        (
         [question_name] => machine runs correctly no abnormal noise 
         [question_ans] => No 
         [question_ans_comments] => None 
         [question_options] => Array 
          (
           [0] => 1 
           [1] => 2 
           [2] => 3 
           [3] => 4 
          ) 

        ) 

      ) 

     [6] => Array 
      (
       [3] => Array 
        (
         [question_name] => machine runs correctly no abnormal noise 
         [question_ans] => No 
         [question_ans_comments] => None 
         [question_options] => Array 
          (
           [0] => 1 
           [1] => 2 
           [2] => 3 
           [3] => 4 
          ) 

        ) 

      ) 

    ) 

)

wie My Datenbank Feldspeicher question_options 1,2,3,4

enter image description here

Ich möchte das Array wie

Array 
(
[Prestart Hand Tools/Electric Power Tool Safety Checks] => Array 
    (
     [3] => Array 
      (
       [1] => Array 
        (
         [question_name] => machine runs correctly no 
          abnormal noise 
         [question_ans] => No 
         [question_ans_comments] => None 
         [question_options] => Array 
          (
           [1] => 'Yes' 
           [2] => 'No' 
           [3] => 'N/a' 
           [4] => 'comments' 
          ) 

        ) 

       [4] => Array 
        (
         [question_name] => abc 
         [question_ans] => Yes 
         [question_ans_comments] => None 
         [question_options] => Array 
          (
           [1] => 'Yes' 
          ) 

        ) 

      ) 

     [5] => Array 
      (
       [2] => Array 
        (
         [question_name] => machine runs correctly no 
          abnormal noise 
         [question_ans] => No 
         [question_ans_comments] => None 
         [question_options] => Array 
          (
           [1] => 'Yes' 
           [2] => 'No' 
           [3] => 'N/a' 
           [4] => 'comments' 
          ) 

        ) 

      ) 

     [6] => Array 
      (
       [3] => Array 
        (
         [question_name] => machine runs correctly no 
          abnormal noise 
         [question_ans] => No 
         [question_ans_comments] => None 
         [question_options] => Array 
          (
           [1] => 'Yes' 
           [2] => 'No' 
           [3] => 'N/a' 
           [4] => 'comments' 
          ) 

        ) 

      ) 

    ) 

)

Bitte helfen Sie mir, dieses Problem zu lösen aus.

+0

Haben Sie etwas versucht? –

+0

Geben Sie den Code frei, der die Werte zum Array hinzufügt. Auf diese Weise können wir Ihnen zeigen, was geändert werden sollte. – EarthDragon

+0

Sie könnten in der SQL-Datei ein 'replace' verwenden, dann würden die Werte wie gewünscht sein. Grob 'ersetzen (ersetzen (ersetzen (ersetzen (Frage_Optionen, '1', 'ja'), '2', 'nein'), '3', 'n/a'), '4', 'Kommentare')' . Sie sollten besser keine CSVs in der Datenbank speichern. – chris85

Antwort

3

bereits.

$options = array(1,2,4); // array of explode(',',$question_value['question_options']) 

    function getOptions($options){ 
     $temparray = array(); 
     $option_fix_array = array(
        1 => 'Yes', 
        2 => 'NO', 
        3 => 'N/A', 
        4 => 'Comments', 
       ); 
     foreach($options as $value){ 
      if(array_key_exists($value,$option_fix_array)){ 
       $temparray[$value] = $option_fix_array[$value]; 
      } 
     } 
     return $temparray; 
    } 

    print_r(getOptions($options)); 

Ich denke, das wird Ihnen helfen.

+0

@R P, Danke Deine Lösung hilft mir ... – Angel

+0

Willkommen bei @Angel. –

1

ein Array deklarieren, wie unten:

$meaningArray = array(
    1 => 'Yes', 
    2 => 'No', 
    3 => 'N/A', 
    4 => 'Comment' 
); 

und Verwendung:

'question_options' => explode(',',$meaningArray[$question_value['question_options']]); 

Statt:

'question_options' => explode(',',$question_value['question_options']) 
+2

Die Frage ist so vage, dass Sie eine positive Bewertung bekommen, nur um sich die Zeit zu nehmen – Purefan

+0

@LuFFy, Ihre Lösung funktioniert nicht – Angel

+0

@Angel, Können Sie mir sagen, ob es irgendwelche Fehler gibt? Ich habe die '$ meaningArray' Werte, die Sie überprüfen können, aktualisiert. – LuFFy