在PhP中传递和接收数组

时间:2014-04-13 04:08:32

标签: php arrays get

我正在尝试使用

传递数组
$variables=questions_file='.($questions_file).'&questions_id='.($questions_id).'&count_hindi='.$count_hindi;
echo '<Redirect method="GET">startCall.php?'.$variables.'</Redirect>';

questions_file和questions_id都是数组

foreach($question_records as $record=>$question)
                {
                    $questions_file[$i]=$question['file_name'].'_'.$question['concept_tested'];
                    $questions_id[$i]=$question['question_id'];
                    echo $questions_file[$i]. "\n";
                    $i++;
                }

因此,当我回显数组时,它显示完美。但是当我使用上面的代码将它传递给另一个文件时,我尝试打印数组元素,它打印为空白。我尝试使用序列化和反序列化,但它仍然无法正常工作

我现在想要使用

检索值
$questions_id=(array)($_REQUEST['questions_id']);
$questions_file=(array)($_REQUEST['questions_file']);

但是当我试图访问成员时。

使用时:

$questions_file= urldecode(http_build_query($questions_file));
            $questions_url= urldecode(http_build_query($questions_id));
            $url = $server.'/startCall.php?call_id='.$call_id.'&phone='.$phone.'&questions_id='.$questions_id.'&questions_file='.$questions_file.'&student_id='.$student_id.'&story='
            .$story.'&call_number='.$call_number.'&question_number=0&response=0&count_english=0&count_hindi=0';

我得到了

questions_file 0=q1_vocab&1=q3_comp&2=q5_crit&3=q7_gra

我想要

questions_file[0]=q1_vocab&questions_file[1]=q3_comp&questions_file[2]=q5_crit&questions_file[3]=q7_gra

1 个答案:

答案 0 :(得分:1)

当您回显数组时,您只需获得“数组”一词。所以你可能得到的是:

echo 'myArr=' . $myArr;
// myArr=Array

当您需要在GET中传递数组时,您需要明确定义它们。例如:

myArr[assoc]=1&myArr[assoc2]=2&myArr2[0]=1&myArr2[1]=2&myOtherArr[]=1

会给你:

$_GET['myArr'] -> ('assoc' => 1, 'assoc2' => 2)
$_GET['myArr2'] -> (0 => 1, 1 => 2)
$_GET['myOtherArr'] -> (0 -> 1)

幸运的是,PHP为您提供了built in function

$myArr = array('assoc' => 1, 'assoc2' => 2);
$get = array(
    'myArr' => $myArr,
    'myOtherArr' => array(1, 2)
);
echo urldecode(http_build_query($myArr));
// myArr[assoc]=1&myArr[assoc2]=2&myOtherArr[0]=1&myOtherArr[1]=2