亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

foreach 循環不會遍歷所有 1 或 2 個元素

foreach 循環不會遍歷所有 1 或 2 個元素

PHP
holdtom 2023-12-15 15:16:45
如果數組中有一個或兩個元素,則 foreach 循環不會按預期工作。$min = INF;$max = -INF;foreach ($mainResponse['chart'] as $elem) {  if ($elem['soldPrice'] > $max) {      $max = $elem['soldPrice'];      $maxDate = $elem['dateSold'];  } elseif ($elem['soldPrice'] < $min) {      $min = $elem['soldPrice'];      $minDate = $elem['dateSold'];  }}這是數組的示例。"chart":[{"soldPrice":780,"dateSold":"08\/30\/2020"},{"soldPrice":999.99,"dateSold":"08\/30\/2020"}]當我嘗試處理這個問題時,什么也沒有出現。為什么 foreach 循環不循環遍歷它?這就是我會得到的..."minDate":null,"maxDate":"08\/30\/2020","maxPrice":"999.99","minPrice":"inf"對于這兩個,我希望它能夠確定正確的最小/最大以及日期。如果有 3 個或更多,則效果很好。
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

問題在于,在任何情況下,soldPrice 始終大于 $max。因此,在循環的每次迭代中,它將始終進入第一個 if 塊,而永遠不會進入 elseif 塊,因此只會覆蓋 $max 和 $maxPrice 每次。

它與數組中的 3 個項目一起使用的事實可能只是巧合 - 您沒有顯示示例,但似乎可以肯定最后一個項目的 sellPrice 較低。

您可以通過更改來輕松解決此問題

elseif ($elem['soldPrice'] < $min) {

if ($elem['soldPrice'] < $min) {

演示:http://sandbox.onlinephpfunctions.com/code/aaeb71e0d95ecf4065d9c1a6fb99e9fb241eca9e

帶有額外數據項的第二個演示,以更有效地展示它:


查看完整回答
反對 回復 2023-12-15
  • 1 回答
  • 0 關注
  • 159 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號