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

Php 从foreach循环外部的多维数组中获取最后一个值,php,mysql,mysqli,Php,Mysql,Mysqli,因此,我正在更新一个数据库表,并从输入中接收一个数组,因为有多个值(id[]、price[]、product[]、description[]等等),但我希望在foreach循环之外获取price[]的最后一个值 我使用这个foreach循环来更新主db表 foreach($\u POST['id']作为$key=>$id){ $array1=$_POST['product'][$key]; $array2=$_POST['priceunit][$key]; $array3=$_POST['qua

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

foreach($\u POST['id']作为$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(“更新表集product=?,priceunit=?,quantity=?,sum=?,totalprice=?其中id=?”;
$query->bind_参数('sddddi',$array1,$array2,$array3,$array4,$array5,$id);
$result=$query->execute();
$query->close();
}
现在我想从$array5中得到最后一个值,这样我就可以在循环外完成这项工作

$sql=$link->prepare(“更新表2设置价格=?其中id=?;”);
$sql->bind_参数(“ds”,
$total,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
将是最后一个
$\u POST['totalprice']

$sql->bind_param("ds",    
    $array5,
    $_GET['id']);
或者,如果不使用所有这些临时变量,也可以这样做:

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

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

$array5 = $_POST['totalprice'][$key];
然后循环完成后,
$array5
将是最后一个
$\u POST['totalprice']

$sql->bind_param("ds",    
    $array5,
    $_GET['id']);
或者,如果不使用所有这些临时变量,也可以这样做:

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

“来自$array5的最后一个值”是什么意思?请注意,
$array5
不是一个数组。您可以在foreach之前声明$array5,并在其中设置一个值。循环后,可以使用end()函数获取此数组的最后一个值。我将编辑此问题,以便向您显示输入。请稍候。@PaulSpiegel doneHmm..仍然不清楚。但我认为您需要
$total=end($\u POST['totalprice']);
。您所说的“来自$array5的最后一个值”是什么意思?请注意,
$array5
不是数组。您可以在foreach之前声明$array5,并在其中设置一个值。循环结束后,您可以使用end()函数从该数组中获取最后一个值。我将编辑该问题,以便向您显示输入。请给我一分钟。@PaulSpiegel doneHmm..仍然不清楚。但我认为您需要
$total=end($_POST['totalprice']);
。你是对的-已经删除了我的评论。但是我的IDE会抱怨“$array5可能未声明”。你是对的-已经删除了我的评论。但是我的IDE会抱怨“$array5可能未声明”。