2016-04-11 6 views
1

Ich habe einen Fragensatz und einen Elternsatz, auf der Basis des Elternnamens möchte ich die answerOption der Frage lesen und eine strichartige Matrix erstellen. Ergebnis wird eine Kombination aller Möglichkeiten sein.Create string with array values ​​

Ich will als eine Zeichenfolge in Folge schreiben unter

key=524136910&CurrentInsuranceStatus=Y&InsuredTimeframe=-1 
key=524136910&CurrentInsuranceStatus=Y&InsuredTimeframe=FiveYearsorMore 
... 
key=524136910&CurrentInsuranceStatus=Parents&InsuredTimeframe=-1 
key=524136910&CurrentInsuranceStatus=Parents&InsuredTimeframe=FiveYearsorMore 

Unten ist mein Code, aber seine Wiederholung Eltern in einem String. Beispiel CurrentInsuranceStatus dieser Elternteil ist und nach dem Zeichen = ist

public function createCBQJson($questions,$parents) 
{ 
    $cbqStdObj = $parents;   
    $jsonString = ''; 
    $urlArr  = array(); 

    foreach($cbqStdObj as $key=>$val) 
    { 
     if(!in_array($key, array('DriverOccupation'))) 
     { 
      //continue; 
     } 
     $jsonString = $key; 
     if(isset($val->k)) 
     { 
      $cbqKey  = $val->k; 
     } 
     // echo 'parents of -'.$jsonString.'--<br>'; 
     $cbqUrl  = ''; 
     if(isset($val->p) && count($val->p)>=2) 
     { 
      foreach($val->p as $pkey=>$pval) 
      { 
       //create url with parent  
       $answers = $questions[$pval]['QuestionData']->_answerOptions;  
       if(count($answers) > 0) 
       { 
             foreach($answers as $ansKey=>$ansValue) 
             { 
              $cbqUrl.= '?key='.$cbqKey.'&'.$pval.'='.$ansValue->_value ;   
             }               
       } 
      } 
      $cbqSet[$cbqKey] = $cbqUrl;     
     } 
    } 
} 

Im Folgenden beantworten $ Fragen arrray

Array 
(
    [CurrentInsuranceStatus] => Array 
     (
      [QuestionData] => Platform_Form_Page_Question Object 
       (
        [_answer] => 
        [_answerOptions] => Array 
         (
          [0] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 340280 
            [_hideAnswer] => 
            [_order] => 110 
            [_promptText] => Yes 
            [_value] => Y 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [1] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 340290 
            [_hideAnswer] => 
            [_order] => 120 
            [_promptText] => Yes, on parents policy 
            [_value] => Parents 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [2] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 340300 
            [_hideAnswer] => 
            [_order] => 130 
            [_promptText] => Yes, insured through employer 
            [_value] => Company 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [3] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 340310 
            [_hideAnswer] => 
            [_order] => 140 
            [_promptText] => No, policy lapsed/expired 
            [_value] => Lapsed 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [4] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 340320 
            [_hideAnswer] => 
            [_order] => 150 
            [_promptText] => No, never been insured 
            [_value] => Never 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [5] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 340330 
            [_hideAnswer] => 
            [_order] => 160 
            [_promptText] => No, I didnt have a vehicle to insure 
            [_value] => First 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [6] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 340340 
            [_hideAnswer] => 
            [_order] => 170 
            [_promptText] => No, been deployed/overseas in the military 
            [_value] => Military 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [7] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 340350 
            [_hideAnswer] => 
            [_order] => 180 
            [_promptText] => No, other reason 
            [_value] => Other 
            [_errorLog] => Array 
             (
             ) 

           ) 

         ) 

        [_answersDivID] => html_CurrentInsuranceStatus 
        [_phoneAreaField] => 
        [_attributeName] => CurrentInsuranceStatus 
        [_criteriaBasedQuestion] => 1 
        [_dateField] => 
        [_eventHandler] => 
        [_fieldType] => select 
        [_hideQuestion] => 1 
        [_monthField] => 
        [_phoneNumberField] => 
        [_order] => 10010 
        [_pageAttributes] => stdClass Object 
         (
          [additionalLabel] => 
          [answerStyle] => 
          [colNum] => 
          [colWidth] => 
          [cssclass] => 
          [defaultValue] => 
          [isMultiSelect] => 
          [maxLength] => 
          [min] => 
          [questionSkinStyle] => 
          [toolTip] => 
         ) 

        [_phonePreFixField] => 
        [_questionDivID] => prompt_CurrentInsuranceStatus 
        [_questionKey] => 7520910 
        [_required] => 1 
        [_text] => Current insurance status 
        [_yearField] => 
        [_errorLog] => Array 
         (
         ) 

       ) 

     ) 

    [InsuredTimeframe] => Array 
     (
      [QuestionData] => Platform_Form_Page_Question Object 
       (
        [_answer] => 
        [_answerOptions] => Array 
         (
          [0] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 3063810 
            [_hideAnswer] => 
            [_order] => 100 
            [_promptText] => Please Select 
            [_value] => -1 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [1] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 653710 
            [_hideAnswer] => 
            [_order] => 110 
            [_promptText] => 5 years or more 
            [_value] => FiveYearsorMore 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [2] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 653810 
            [_hideAnswer] => 
            [_order] => 120 
            [_promptText] => 4-5 years 
            [_value] => FourtoFiveYears 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [3] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 654110 
            [_hideAnswer] => 
            [_order] => 130 
            [_promptText] => 3-4 years 
            [_value] => ThreetoFourYears 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [4] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 654310 
            [_hideAnswer] => 
            [_order] => 140 
            [_promptText] => 2-3 years 
            [_value] => TwotoThreeYears 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [5] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 654210 
            [_hideAnswer] => 
            [_order] => 150 
            [_promptText] => 1-2 years 
            [_value] => TwelveOrMoreMonths 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [6] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 654010 
            [_hideAnswer] => 
            [_order] => 160 
            [_promptText] => 6 to 11 months 
            [_value] => SixToElevenMonths 
            [_errorLog] => Array 
             (
             ) 

           ) 

          [7] => Platform_Form_Page_Question_AnswerOption Object 
           (
            [_answerKey] => 653910 
            [_hideAnswer] => 
            [_order] => 170 
            [_promptText] => Less than 6 months 
            [_value] => LessThanSixMonths 
            [_errorLog] => Array 
             (
             ) 

           ) 

         ) 

        [_answersDivID] => html_InsuredTimeframe 
        [_phoneAreaField] => 
        [_attributeName] => InsuredTimeframe 
        [_criteriaBasedQuestion] => 1 
        [_dateField] => 
        [_eventHandler] => 
        [_fieldType] => select 
        [_hideQuestion] => 1 
        [_monthField] => 
        [_phoneNumberField] => 
        [_order] => 10020 
        [_pageAttributes] => stdClass Object 
         (
          [additionalLabel] => 
          [answerStyle] => 
          [colNum] => 
          [colWidth] => 
          [cssclass] => 
          [defaultValue] => 
          [isMultiSelect] => 
          [maxLength] => 
          [min] => 
          [questionSkinStyle] => 
          [toolTip] => 
         ) 

        [_phonePreFixField] => 
        [_questionDivID] => prompt_InsuredTimeframe 
        [_questionKey] => 7169110 
        [_required] => 1 
        [_text] => How long have you been continuously insured? 
        [_yearField] => 
        [_errorLog] => Array 
         (
         ) 

       ) 

     ) 
) 

unten Mutter Array

stdClass Object 
(
    [IncidentClaimAmountPaid] => stdClass Object 
     (
      [o] => 13520 
      [k] => 524136910 
      [p] => Array 
       (
        [0] => CurrentInsuranceStatus, 
        [1] => InsuredTimeframe 
       ) 

      [e] => 
      [r] => 1 
      [a] => Array 
       (
        [0] => stdClass Object 
         (
          [i] => 32 
          [k] => 529582210 
          [p] => Array 
           (
            [0] => IncidentClaimLabel 
           ) 

          [e] => 
         ) 

        [1] => stdClass Object 
         (
          [i] => 1 
          [k] => 529580710 
          [p] => Array 
           (
            [0] => IncidentClaimLabel 
           ) 

          [e] => 
         ) 

        [2] => stdClass Object 
         (
          [i] => 4 
          [k] => 529581310 
          [p] => Array 
           (
            [0] => IncidentClaimLabel 
           ) 

          [e] => 
         ) 

        [3] => stdClass Object 
         (
          [i] => 2 
          [k] => 529581010 
          [p] => Array 
           (
            [0] => IncidentClaimLabel 
           ) 

          [e] => 
         ) 

        [4] => stdClass Object 
         (
          [i] => 16 
          [k] => 529581910 
          [p] => Array 
           (
            [0] => IncidentClaimLabel 
           ) 

          [e] => 
         ) 

        [5] => stdClass Object 
         (
          [i] => 128 
          [k] => 529582810 
          [p] => Array 
           (
            [0] => IncidentClaimLabel 
           ) 

          [e] => 
         ) 

        [6] => stdClass Object 
         (
          [i] => 64 
          [k] => 529582510 
          [p] => Array 
           (
            [0] => IncidentClaimLabel 
           ) 

          [e] => 
         ) 

        [7] => stdClass Object 
         (
          [i] => 256 
          [k] => 530551610 
          [p] => Array 
           (
            [0] => IncidentClaimLabel 
           ) 

          [e] => 
         ) 

        [8] => stdClass Object 
         (
          [i] => 8 
          [k] => 529581610 
          [p] => Array 
           (
            [0] => IncidentClaimLabel 
           ) 

          [e] => 
         ) 

       ) 

     ) 
) 

Antwort

0

Sie unter Code verwenden können, um Ihre Ausgabe.

public function ($questions,$parents) 
{ 
    $cbqStdObj = json_decode($parents); 
    $jsonString = ''; 
    $urlArr  = array(); 
    $n = 1; 
    foreach($cbqStdObj as $key=>$val) 
    { 

     $jsonString = $key; 
     if(isset($val->k)) 
     { 
      $cbqKey  = $val->k; 
     } 
     if(!in_array($cbqKey, array('519732810'))) 
     { 
      //continue; 
     } 
     //echo 'parents of -'.$jsonString.'--<br>'; 
     $cbqUrl  = ''; 
     $count = 1; 
     $baseUrl = '?key='.$cbqKey; 
     if (isset($val->p) && count($val->p) >= 1) 
     {     
      $cbqSet = array(); 
      $newcbqSet = array(); 

      foreach ($val->p as $pkey => $pval) 
      { 
       //echo $cbqKey.'=>'.$pval.'<br>'; 
       //create url with parent  
       $answers = $questions[$pval]['QuestionData']->_answerOptions; 
       if (count($answers) > 0) 
       { 
        foreach ($answers as $ansKey => $ansValue) 
        { 
         if($count > 1){ 
          foreach($cbqSet[$count-1] as $k1=>$url){ 
           $cbqUrl = $url.'&' . $pval .'='.$ansValue->_value; 
           $cbqSet[$count][] = $cbqUrl; 
          } 
         }else{ 
           $cbqUrl = $baseUrl .'&' . $pval .'='.$ansValue->_value; 
           $cbqSet[$count][] = $cbqUrl; 
         } 
        } 
        $result = $cbqSet[$count]; 
        $count++; 
       }  

      } 
      if(isset($result) && count($result) > 0){ 
       $fset[] = array_unique($result); 
      } 
     } 

    } 
    print_r($fset); 
}