-2

Foreach 适用于单个数组,但不适用于两个数组.. 但它需要两个数组,这可能吗?

示例:foreach($okeymi 作为 $tokeymi和 $sipno 作为 $tsipno )

<input type='checkbox' name='okeymi[]' value='okey'/>
    <input type='checkbox' name='okeymi[]' value='okey'/>
    <input type='checkbox' name='okeymi[]' value='okey'/>
    <input type='checkbox' name='okeymi[]' value='okey'/>
    <input type='text' name='sipno[]'  value='1080'/>
    <input type='text' name='sipno[]'  value='8408'/>
    <input type='text' name='sipno[]'  value='1515'/>
    <input type='text' name='sipno[]'  value='9098'/>


$okeymi = $_POST['okeymi'];
$sipno = $_POST['sipno'];


foreach($okeymi as $tokeymi and $sipno as $tsipno) {

$objConnect = mssql_connect("xxx","xxx","xxx") or die("Error Connect to Database");
$objDB = mssql_select_db("xxxx");


$ftrSQL = "UPDATE [xxxx].[dbo].xxxx SET BAKIYEDEMI='okey' where STOK_KODU='$tokeymi' AND SIPARIS_NO='$tsipno'";

$hbjQuery = mssql_query($ftrSQL);

}
4

4 回答 4

1

在您的特定情况下,这将起作用:

foreach ($array1 as $key=>$value) {
 echo $array1;
 echo $array2[$key];
}
于 2013-07-03T16:11:30.920 回答
0

不,这是不可能的。如果数组包含不同数量的元素,它将如何工作?

不过,您可以使用计数器来伪造它。请注意不要尝试访问不存在的数组元素:

$counter = 0;
$max_elements = max(count($okeymi), count($sipno));

while($counter < $max_elements) {
    $tokeymi = isset($okeymi[$i]) ? $okeymi[$i] : null;
    $tsipno = isset($sipno[$i]) ? $sipno[$i] : null;

    #use $tokeymi and $tsipno here

    ++$counter;
}
于 2013-07-03T16:11:04.713 回答
0

那是错误的。你可以这样做:

$okeymi = $_POST['okeymi'];
$sipno = $_POST['sipno'];
for( $i = 0; $i < count( okeymi ); $i++ )
{ 
   // access your posts $okeymi[ $i ] and $sipno
}
于 2013-07-03T16:11:14.443 回答
0

你不能这样做。Foreach 仅适用于单个数组。如果这两个数组的键之间存在 1:1 对应关系,那么您可以执行类似的操作

foreach($array as $key => $value) {
   $othervalue = $otherarray[$key];
}

基本上循环一个数组,然后使用该数组的键从另一个数组中获取 matchign 值。

但是,您的两个数组的长度似乎不同,所以这不起作用。您不能使用自动循环同时处理两者,因为您正在处理苹果和橙子。

于 2013-07-03T16:12:07.407 回答