Php 而foreach内部的循环-什么是i';我做错了

Php 而foreach内部的循环-什么是i';我做错了,php,arrays,loops,while-loop,Php,Arrays,Loops,While Loop,我对php非常陌生,曾试图自己找到解决方案,但失败了。这是密码 $i = 0; $j = 0; $lastchange = 0; $pricearray = array(); $onlyprices = array(); foreach ($mymainlist as $key => $val) { $pricearray[$val] = $res[$val]; $avg = array_sum($pricearray[$val]) / count($pricearr

我对php非常陌生,曾试图自己找到解决方案,但失败了。这是密码

$i = 0;
$j = 0;
$lastchange = 0;
$pricearray = array();
$onlyprices = array();
foreach ($mymainlist as $key => $val)
{
    $pricearray[$val] = $res[$val];   
    $avg = array_sum($pricearray[$val]) / count($pricearray[$val]); $onlyprices = array_values($pricearray[$val]) ;
    $dealmetric = ($avg - $onlyprices[$i])/ $avg * 100; 

    do { 
        if ($onlyprices[$i] === $onlyprices[$j]) { $j++; }
        else { $lastchange = $onlyprices[$j]; }
    } while ( $lastchange = 0 );
}
    echo $lastchange . '</br>'; 
我试图做的是检查第一个元素何时不等于下一个元素并返回它

因此,在$lastchange上方的数组中,应该返回217.96,因为[0]=[1]和[0]=[2]

谢谢

$i=0;
$j=0;
$lastchange=0;
$pricearray=array();
$onlyprices=array();
foreach($mymainlistas$key=>$val){
$pricearray[$val]=$res[$val];
$avg=array_sum($pricearray[$val])/count($pricearray[$val]);
$onlyprices=array_值($pricearray[$val]);
$dealmetric=($avg-$onlyprices[$i])/$avg*100;
做{
如果($onlyprices[$i]===$onlyprices[$j]){
$j++;
}否则{
$lastchange=$onlyprices[$j];
}
}而($lastchange==0);
回显$lastchange。“
”; }
在代码中,while条件将值0赋给变量$lastcange


您不是在比较两者。

while($lastchange=0)
如果您想检查一些值,请将值绑定到
$lastchange
,如果您想使用
==
===
进行绑定,只是为了澄清:$lastchange=0在每个循环结束时设置$lastchange-您需要比较它$lastchange==0谢谢,但现在我有另一个问题:查看此数组([0]=>349.18[1]=>362.18[2]=>362.18[3]=>362.18[4]=>362.18[5]=>377.65[6]=>329.00[7]=>414.70[8]=>329.00[9]=>414.70[10]=>319.00)返回的不是362.18,而是数字[5]377.65
Array ( [0] => 214.68 [1] => 214.68 [2] => 214.68 [3] => 217.96 [4] => 217.96 [5] => 217.96 [6] => 217.96 [7] => 217.96 [8] => 279.99 [9] => 221.63 [10] => 280.61 [11] => 269.99 [12] => 298.00 )
$i = 0;
$j = 0;
$lastchange = 0;
$pricearray = array();
$onlyprices = array();

foreach ($mymainlist as $key => $val) {
    $pricearray[$val] = $res[$val];   
    $avg = array_sum($pricearray[$val]) / count($pricearray[$val]);
    $onlyprices = array_values($pricearray[$val]) ;
    $dealmetric = ($avg - $onlyprices[$i])/ $avg * 100; 

    do { 
        if ($onlyprices[$i] === $onlyprices[$j]) { 
            $j++; 
        } else { 
            $lastchange = $onlyprices[$j]; 
        }
    } while ($lastchange == 0);

    echo $lastchange . '</br>'; 
}