簡體   English   中英

在foreach中循環while-我在做什么錯

[英]while loop inside foreach - what i'm doing wrong

我對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>'; 

數組$ onlyprices看起來像這樣

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 )

我想做的是檢查第一個元素何時不等於下一個元素並返回它。

因此,在$ lastchange以上的數組中,應該返回217.96,因為[0] = [1]和[0] = [2]

謝謝

$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>'; 
}

在您的代碼中,while條件為變量$ lastcange分配了值0。

您沒有將兩者進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM