簡體   English   中英

使用 For 循環創建關聯數組

[英]Create Associative Array using For Loop

我想要一個使用從數據庫和 $_GET 存儲的變量的以下格式的數組

array('FNAME' => 'NIDHI','EMAIL' => 'example@email.com','SRC' => '')

我正在嘗試的內容如下

if ($variableResult->num_rows>0) {
            
            while($variable_row = $variableResult->fetch_assoc()) {

              $variableArray[] = $variable_row['variable_name'];
              
            }
            
            $totalVariables = count($variableArray);
            
            
         
            for($i = 0; $i < $totalVariables; $i++) {
              
              $dataArray[] = array($variableArray[$i] => htmlspecialchars($_GET[$variableArray[$i]]));
              
            }

            var_dump($dataArray);
            exit();
            
        }

它給了我如下輸出

array(5) { [0]=> array(1) { ["EMAIL"]=> string(17) "nidhi@example.com" } [1]=> array(1) { ["LNAME"]= > string(5) "NIDHI" } [2]=> array(1) { ["THIS_IS_CUSTOM"]=> string(0) "" } [3]=> array(1) { ["THIS_IS_CUSTOM_2"]=> string(0) "" } [4]=> array(1) { ["THIS_IS_CUSTOM_3"]=> string(0) "" } }

這里不需要兩個循環。 1) while 和 2) for。 一會兒就夠了。

注意:下面的代碼可能不完美。 你可能需要稍微改變一下:)

$variableArray = []; // declare blank array variable first
while($variable_row = $variableResult->fetch_assoc()) { 
   if(!empty($variable_row['variable_name'])){ // check if key presnt
       $varName = $variable_row['variable_name'];
       if(!empty($_GET[$varName])){ // check if valid get variable exist
            $variableArray[$varName] = htmlspecialchars($_GET[$varName]); 
       }
   }  
}
// print it for better visibility
echo '<pre>'; print_r($variableArray); echo '</pre>';

我相信它會給你正確的結果,但格式有點混亂。

代替:

var_dump($dataArray);

和:

print("<pre>".print_r($dataArray,true)."</pre>");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM