簡體   English   中英

如何使用foreach存儲多個數組值?

[英]how to store multiple array values with using foreach?

我只想在下面的代碼中使用一次foreach,並且我需要將兩個store_data和store_control_text數組值分別暫存到數據庫的各個字段中。需要建議不要對多個數組值使用foreach循環。

$data = $_REQUEST['columns_one'];
$controlText = $_REQUEST['controlText'];

$store_control_text = explode(",",$controlText);
$store_data = explode(",",$data);

$query = "INSERT INTO formdetailstemp(FormId,ControlType,ControlText,ControlPara1,Mandatory) VALUES ";
$values = array(); //store all the new rows
foreach($store_data as $key =>$value){
  $values[] = "('','".$value."','".$controlText."','".$controlPara."','".$mandatoryValue."')";
}

我相信您正在尋找一個MultipleIterator ,它將通過一個foreach循環輕松地在兩個數組上進行迭代:

$iter = new MultipleIterator;
$iter->attachIterator( new ArrayIterator( $store_control_text));
$iter->attachIterator( new ArrayIterator( $store_data));

foreach( $iter as $data) {
    list( $a, $b) = $data;
    var_dump( $a, $b);
    // Do your SQL insert with $a and $b
}

您可以使用array_map

foreach ( array_map(null, $store_control_text, $store_data) as $join ) {
    list($text, $data) = $join;
     //Do your stuff 

}

參見簡單示例

you can use .implode();

foreach ($_POST['description'] as $row=>$name){
$description = $name;
$supplier = $_POST['supplier']; //Normal textbox value
$quantity = $_POST['quantity'][$row]; //Array text box 1
$partnumber = $_POST['partnumber'][$row]; // Array text box 2
$unitcost = $_POST['unitcost'][$row]; // Array text box 3

$sql_array[] = '("NULL","' . $partnumber . '","' . $supplier . '","'.$description.'", "'.$quantity.'","'.$unitcost.'")'; 
}

    $query_single = 'INSERT INTO `inwards` (`id`, `partnumber`, `suppliers`, `description`, `quantity`,`unitcost`) VALUES '. implode(', ', $sql_array);

暫無
暫無

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

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