Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays - Fatal编程技术网

Php 使用来自同一数组的值更新数组

Php 使用来自同一数组的值更新数组,php,arrays,Php,Arrays,我有一个具有此结构的数组(这是其中一个条目): 我在foreach中循环它,根据某些条件将[importo]设置为等于[gbv_tot]或[ammesso]。我编写了这段代码,但似乎没有更新键[importo]的值 foreach($creds as $cred){ if(($cred['tipo'] == '1')&&($tipo_az == 'conc')){ //sto elaborando un chirografo in una azione c

我有一个具有此结构的数组(这是其中一个条目):

我在foreach中循环它,根据某些条件将[importo]设置为等于[gbv_tot]或[ammesso]。我编写了这段代码,但似乎没有更新键[importo]的值

foreach($creds as $cred){
    if(($cred['tipo'] == '1')&&($tipo_az == 'conc')){
        //sto elaborando un chirografo in una azione concorsuale quindi prendo il nominale
        if($cred['stato']=='aperta'){
            $gbv_compl = $gbv_compl + $cred['ammesso'];
            $cred['importo'] = $cred['ammesso'];
        }else{
            $cred['importo'] = 0;
        }
    }else{
        //sto elaborando qualcosa d'altro e quindi prendo il GBV
        if($cred['stato']=='aperta'){
            $gbv_compl = $gbv_compl + $cred['gbv_tot'];                 
            $cred['importo'] = $cred['gbv_tot'];
        }else{
            $cred['importo'] = 0;
        }
    }
}
我认为这不是正确的方法,因为我无法更新[importo]。我缺少什么?

使用
foreach($cred作为$cred){
$cred
将不引用主
数组。对于每个迭代,它将把当前元素分配给
$cred
。您需要使用

foreach($creds as $key => $cred){
并将值设置为-

$creds[$key]['importo'] = 'whatever value it is';
为了能够直接修改循环中的数组元素,请在$value之前加上&。在这种情况下,将通过引用指定值

通过使用引用,您可以直接更新它们-

$cred['importo'] = 0;
将使用
foreach($creds as$cred)更改主
数组的当前元素的值

{
$cred
将不引用主
数组
。对于每次迭代,它将当前元素分配给
$cred
。您需要使用

foreach($creds as $key => $cred){
并将值设置为-

$creds[$key]['importo'] = 'whatever value it is';
为了能够直接修改循环中的数组元素,请在$value之前加上&。在这种情况下,将通过引用指定值

通过使用引用,您可以直接更新它们-

$cred['importo'] = 0;
将更改主
数组的当前元素的值

更改此行

foreach($creds as $cred){

现在,对
$cred
的更改将应用于您的阵列

更改此行

foreach($creds as $cred){


现在,对
$cred
的更改将应用于您的数组

复制:复制:谢谢!我想既然我在foreach循环中,我就可以省略键..我会尽快将此标记为已解决:)谢谢!我想既然我在foreach循环中,我就可以省略键..我会尽快将此标记为已解决:)