2017-10-09 60 views
-1

我有我想要「優化」的數組,而不是手動添加pg1-pg11,我想使用「for」。

如何正確使用它?

$query = array(
    'e1' => $_POST['npole3-1'], 
    'e2' => $_POST['npole3-2'], 
    'e3' => $_POST['npole3-3'], 
    'e4' => $_POST['npole3-4'], 
    'e5' => $_POST['npole3-5'], 
    'e6' => $_POST['npole3-6'], 
    'e7' => $_POST['npole3-7'], 
    'e8' => $_POST['npole3-8'], 
    'e9' => $_POST['npole3-9'], 
    'e10' => $_POST['npole3-10'], 
    'e11' => $_POST['npole3-11'], 
    'e12' => $_POST['npole3-12'], 
    'e13' => $_POST['npole3-13'], 
    'e14' => $_POST['npole3-14'], 
    'e15' => $_POST['npole3-15'], 
    'e16' => $_POST['npole3-16'], 
    'e17' => $_POST['npole3-17'], 
    'e18' => $_POST['npole3-18'], 
    ); 

for ($i = 1; $i <= 11; $i++) {array_push($query, ('pg1' => $_POST['pgadd-' . i]))}; 
+0

請問POST變量總是用'npole3-'開始?例如,你總是可以修剪它以獲得查詢部分的編號? – GrumpyCrouton

+1

'。我單獨應該觸發一個未定義的常量通知,並且很可能是你的代碼失敗的原因,因爲如果那是你的真實代碼。 –

+0

我想將pgadd-1 - pgadd-11添加到這個數組中,但是這個部分總是以npole3開頭。問題是如何正確使用這種情況? – riten

回答

0
$query = array(); 

for ($i = 1; $i <= 11; $i++) { 

     // if exists in post array then 
     if(isset($_POST['pgadd-' . $i])){ 

      // then add to query array 
      // array key will be like pg1, pg2, pg3 ... 
      // array value will be from your post data pgadd-1. pgadd-2 

      $query['pg'.$i] = $_POST['pgadd-' . $i]; 
     } 
} 

// to see what's there inside array 
print_r($query); 
+2

如果我不得不猜測爲什麼,你被低估了兩次,這可能是因爲它看起來像一個代碼唯一的答案?但我不確定。不是我的downvote。我認爲你的回答很有用,儘管我會讓你回到0 – GrumpyCrouton

+3

這也是我的投注@GrumpyCrouton作爲密切投票評論者經常會說*「雖然這段代碼可能回答這個問題,提供了關於爲什麼和/或如何這個代碼回答了這個問題,提高了它的長期價值。「*最重要的是,選民們投票並繼續前進,即使答案得到改善,他們也不會回頭將其刪除。 –

+1

正確地完成關閉帖子,並鏈接到解決問題@AkshayHegde的代碼。我們都知道這不是個人問題,應該引導新的編碼人員解決問題。僅有代碼的答案往往缺乏使用哪些函數的基本指導,以及爲什麼使用它們的方式。從許多方面來說,這對於新編碼員來說更不利於解釋工作代碼的鏈接。正如你所說,*「OP無法理解和解決小的小問題」*,因爲給他們的代碼沒有解釋。 –