Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用函数php更新数组_Php - Fatal编程技术网

如何使用函数php更新数组

如何使用函数php更新数组,php,Php,嘿,我返回了一个函数,它接受一些订单并从库存数组中减去它们…但是,当我运行该函数时,它只是更新函数中的库存,原始库存没有改变..我知道这与范围有关,但我不知道如何准确地做。。 我该怎么做?你能帮忙吗 function updateInventory ($inv) { foreach($_SESSION["inventory"] as $bookDetails) { foreach($_POST['orders'] as $k => $v) {

嘿,我返回了一个函数,它接受一些订单并从库存数组中减去它们…但是,当我运行该函数时,它只是更新函数中的库存,原始库存没有改变..我知道这与范围有关,但我不知道如何准确地做。。 我该怎么做?你能帮忙吗

function updateInventory ($inv) {
    foreach($_SESSION["inventory"] as $bookDetails) {
        foreach($_POST['orders'] as $k => $v) {
            if($bookDetails['title'] == $k && $v == "hardcover") {
                $bookDetails['hc-quantity']=intval($bookDetails['hc-quatinty'])-1;     
            }      
        }
    }
}

将数组赋给变量时,它会获取数组的副本,因此对该变量的更改不会影响原始数组。可以使用引用来防止复制

function updateInventory ($inv) {
    foreach($_SESSION["inventory"] as &$bookDetails) {
        foreach($_POST['orders'] as $k => $v) {
            if($bookDetails['title'] == $k && $v == "hardcover") {
                $bookDetails['hc-quantity']--;     
            }      
        }
    }
}

这可能是因为
hc quantity
的拼写错误吗?如果原始资源清册是您的会话,那么您必须重新分配会话数组来更新它。为什么函数不使用
$inv
参数?