Foreach循环工作,但输出“无效参数”?

时间:2013-08-10 19:11:43

标签: php arrays

我希望在这里提供足够的信息,但我很困惑为什么foreach循环有效,它获取每个数据并将其输出到li但是我得到一个无效的参数错误?

以下是var_dump

的结果
array(1) { ["questions"]=> 
    array(2) { ["title"]=> string(5) "Keanu" [1]=> 
        array(1) { ["questionlist"]=> array(2) { [0]=> 
            array(1) { 
                ["a-question"]=> string(1) "1" } [1]=> array(1) { 
                ["a-question"]=> string(5) "civil" } } } } } 

这是我的foreach声明

foreach($questions['questions'] as $key => $value){    
            foreach($value['questionlist'] as $key => $subquestion){ //line 119

                 echo '<li>'.$subquestion['a-question'].'</li>';

            }
}

$questions是一个用于从数据库中获取数据的变量。

$questions = $wpdb->get_row("SELECT * FROM $table_name ORDER BY id DESC LIMIT 1" , ARRAY_A);

数据来自ajax,我在发送到数据库之前修改了这样的ajax $_POST

    // Add modifications
    $questions['questions'] = $_POST['questions']['data'];

    // DB data
    $name = $wpdb->escape($questions['questions']['title']);
    $data = $wpdb->escape(json_encode($questions));

截图:

enter image description here

我不知道为什么我得到了无效的参数,我怀疑它是因为数组可能格式不正确,如果您需要更多信息请告诉我。

解决方案: 感谢@didierc

我使用他的代码并稍微修改它以循环显示我的数据,基本上我所做的只是添加另一个foreach

 foreach($questions['questions'] as $key => $value){   
   if(is_array($value) && isset($value[ 'questionlist'])){
       foreach($value as $key => $subquestion){ //line 119
           foreach ($subquestion as $key => $value){

               // This loops all the ['a-question'] data
               echo '<li>''.$value['a-question'].''</li>';

           }
        }
     }
  }  

1 个答案:

答案 0 :(得分:4)

试试这个:

foreach ($questions['questions'] as $key => $value) {   
        if (is_array($value) && isset($value[ 'questionlist']))  {
            foreach ($value['questionlist'] as $subnum => $subquestion) {
                foreach ($subquestion as $qtitle => $qanswer) {

变量名称希望足够明确。这应该让你开始。

注意:格式化时,数据可能更容易理解:

array(1) {
 ["questions"]=> array(2) { 
    ["title"] => string(5) "Keanu"
    [1]      =>  array(1) { 
        ["questionlist"]=> array(2) {
            [0]=>   array(1) { 
                ["a-question"]=> string(1) "1" 
            }
            [1]=> array(1) { 
                ["a-question"]=> string(5) "civil"
            }
        } 
    }
}
}