[英]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.