2016-11-30 55 views
0

我與將請求發送到我的服務器有一些POST值的API的工作,包括這一個:PHP - 遍歷POST值N次

'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參數和退出循環,當我打到預期的參數的數量?

+0

WHY NOT遍歷所有提交值'的foreach($ _ POST爲$鍵=> $ val){//你的代碼在這裏}' – Noman

+0

我需要將可存在{N}次的參數進行分組,這些參數是MediaUrl {N}和MediaContentType {N}參數,並且每組這些參數都寫出來到數據庫中的記錄。這感覺就像我需要循環播放這些,正如我所知道的那樣,根據NumMedia的期望值。 – user982124

+0

WHY NOT循環遍歷所有後期值'foreach($ _ POST爲$ key => $ val){if(strpos($ key,'NumMedia')!=='false'){//您的代碼在這裏}} – degr

回答

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訪問的價值等等....

+0

他希望將數據保存到循環內的數據庫中,不需要動態變量,只需使用$ mediaContentType和$ mediaURL – phobia82

+0

或者如果要使用循環外的值,則使用數組,動態變量聽起來像是奇怪/難以爲我實現解決方案。 – phobia82

+0

@ phobia82讓他決定他想對變量做什麼:P –