php - 从 foreach 循环外部的多维数组中获取最后一个值

标签 php mysql mysqli

因此,我正在更新数据库表,并从输入中收到一个数组,因为有多个值( id[] 、price[] 、product[] 、description[] 等),但我想获取foreach 循环外的价格[]的最后一个值 我使用这个 foreach 循环来更新主数据库表

foreach ($_POST['id'] as $key => $id) {
    $array1 = $_POST['product'][$key];
    $array2 = $_POST['priceunit'][$key];
    $array3 = $_POST['quantity'][$key];
    $array4 = $_POST['sum'][$key];
    $array5 = $_POST['totalprice'][$key];
    $query = $link -> prepare("UPDATE table SET product = ?, priceunit = ?, quantity = ?, sum = ?, totalprice = ? WHERE id = ?");
    $query -> bind_param('sddddi',$array1,$array2,$array3,$array4,$array5,$id);
    $result = $query-> execute();
    $query -> close();
}

现在我想从 $array5 获取最后一个值,这样我就可以在循环之外执行此操作

$sql = $link -> prepare("UPDATE table2 SET price = ? WHERE id = ?;");
$sql -> bind_param("ds",

    $total,  <- array5 last value
    $_GET['id']);

$query = $sql -> execute();
$sql -> close();

这是输入

<tbody>
<?php
        $sql = $link -> prepare("SELECT * FROM table WHERE id_proposta = ?;");
        $sql -> bind_param('s',
             $_GET['id']);
        $sql -> execute();
        $result = $sql -> get_result();
        for ($i = 0; $r = $result -> fetch_assoc(); $i++){ ?>
        <tr>                                
            <input type="hidden" value="<?php echo $r['id']; ?>" name="id[]">                               
            <td><textarea class="form-control" name="product[]" rows="3" id="textareaAutosize" data-plugin-textarea-autosize><?php echo $r['product']; ?></textarea></td>       
            <td><input type="text" class="priceunit" value="<?php echo $r['priceunit']; ?>" name="priceunit[]"></td>                                                                
            <td><input type="text" class="qtd" value="<?php echo $r['quantity']; ?>" name="quantity[]"></td>
            <td><input type="text" class="sum" value="<?php echo $r['sum']; ?>" name="sum[]" readonly></td>
            <td><input type="text" class="totalprice" value="<?php echo $r['totalprice']; ?>" name="totalprice[]" readonly></td>                                                            
        </tr>
<?php } $sql -> close(); ?>
</tbody>

谢谢。

最佳答案

由于您在循环中执行此操作:

$array5 = $_POST['totalprice'][$key];

那么循环结束后,$array5将是最后一个$_POST['totalprice']。所以只需使用它:

$sql->bind_param("ds",    
    $array5,
    $_GET['id']);

如果您不使用所有这些临时变量,甚至可以这样:

$sql->bind_param("ds",    
    $_POST['totalprice'][$key],
    $_GET['id']);

关于php - 从 foreach 循环外部的多维数组中获取最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56045244/

相关文章:

php - MySQL 和 PHP : Only the first field in the table is displayed

php - 银行交易事件 - 在每次交易后更新当前余额

php - 从 phpmyadmin 创建一个填充的下拉列表

PHP mySQL LOAD LOCAL INFILE 导入正好一半?

php - 未知的复选框问题

php - 脏话过滤器不起作用 (php)

php - 为什么我不能运行两个 mysqli 查询?第二个失败

php - 多维数组差异php

php - 为什么这段代码不起作用?你能帮助我吗?

PHP mysql_stmt::fetch() 给出 PHP fatal error 内存耗尽