PHP - 循环POST值N次

时间:2016-11-30 06:35:52

标签: php

我正在使用API​​向我的服务器发送请求,其中包含一些POST值,包括以下内容:

'NumMedia' => '1'

NumMedia的值确定将接收多少附加参数。例如,如果NumMedia = 1,我将获得2个附加参数:

'MediaContentType0' => 'image/jpeg'
'MediaUrl0' => 'https://api.server.com/2010-04-01/Accounts/xxxxxxxx',

如果NumMedia大于1,我会得到一组额外的参数:

'MediaContentType0' => 'image/jpeg'
'MediaUrl0' => 'https://api.server.com/2010-04-01/Accounts/xxxxxxxx'
'MediaContentType1' => 'image/jpeg'
'MediaUrl1' => 'https://api.server.com/2010-04-01/Accounts/zzzzzzzz'

等等,其中第一个参数以0结尾,并且每增加一个返回的参数集,则递增1。

我想要做的是,根据NumMedia参数值指示的参数数量,循环遍历每个参数并将它们设置为变量,然后写出一些数据库记录。有点像:

if (isset($_POST['NumMedia']) && $_POST['NumMedia'] !== '') {
    $totalParams = $_POST['NumMedia'];
    $counter = 0;

    // set a variable for the first set of parameters
    $mediaContentType = $_POST['NumMediaXXX'] // XXX = $counter
    $mediaURL = $_POST['MediaUrlXXX'] // XXX = $counter

    // save these variables to database record
    // increment counter to get next set of parameters
    // exit when $counter = $totalParams

    $counter ++; 
}

我可以在概念上看到我需要做什么,只是不确定如何让循环进行并引用动态POST参数并在我达到预期参数的数量时退出循环?

1 个答案:

答案 0 :(得分:0)

你必须通过循环获得价值。

if (isset($_POST['NumMedia']) && $_POST['NumMedia'] !== '') {

    $totalParams = $_POST['NumMedia'];

    for($i=0; $i<$totalParams; $i++)
    {
        // set a dynamic variables
        ${"mediaContentType" . $i}  = $_POST['mediaContentType'.$i]; // XXX = $counter
        ${"mediaURL" . $i} = $_POST['MediaUrl'.$i]; // XXX = $counter
    }

}

您必须在动态变量中设置值,并且可以按$mediaContentType0 , $mediaURL0, $mediaContentType1 , $mediaURL1等方式访问该值....