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

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

是一種在不同地方回顯相同數據的方法,而不需要多個 for eaches

是一種在不同地方回顯相同數據的方法,而不需要多個 for eaches

PHP
Qyouu 2022-10-28 09:41:37
因此,我從 json APi 中獲取數據,并使用 foreach 將其回顯到復雜的鏈接中。假設數據包括 -title -link -image因此,第一個 foreach 將遍歷數據并以某種格式將其回顯,圖像縮略圖和可點擊的標題都包裹在一個塊中。然后,在站點的其他地方,我需要使用相同的數據,但格式不同,我想看看是否可以在不使用多個 foreach 的情況下做到這一點。首先,我需要檢查標題是否可用,并返回 true 或 false,然后我需要再次列出標題,這次是純文本,用逗號分隔,不包括我已經檢查過的標題。不確定這是否有意義,但代碼看起來像這樣<?php  $neflix = false; $hulu = false; $amazon = false; foreach($sources as $source) {      if ($source['source'] == "netflix"){$neflix = true;}      if ($source['source'] == "hulu"){$hulu = true;}      if ($source['source'] == "amazon"){$amazon= true;}      echo '<a href="'.$source['link'].'" class="streaming-option">            <img src="'. get_stylesheet_directory_uri()."/assets/images/sources/78x78/".$source['source'].'".png"/>            <strong>'. $source['display_name'] .'</strong>           </a>';  }這就是我到目前為止的第一個循環。我在 foreach 循環之外聲明了初始標題,以便稍后在代碼的其他地方使用它們,然后檢查它們是否存在于循環內部,如果存在則將其設置為 true。所以我只是想知道我是否需要設置一個完全不同的 foreach 循環,如果我想簡單地在另一個部分中以文本格式列出相同的標題,用逗號分隔,而不是完整鏈接,并且不包括源在他們每個人中(我必須為每個人創建一個逗號分隔的列表,上面示例中的 hulu 和 netflix 和 amazon)我想第二部分看起來像這樣<?phpif($netflix == true) {echo "Yes, Netflix is available, it is also available in ";foreach($sources as $source) {      if ($source['source'] != "netflix") {      echo $source['display_name'].", ";     }   }}為 Hulu、亞馬遜等做同樣的事情。我真的希望有一種更清潔的方法來做到這一點。
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

您可以在變量中收集所需的數據,然后將變量回顯到所需的部分。


我將嘗試使用您的代碼。


 <?php 

 $neflix = false;

 $hulu = false;

 $amazon = false;

 $holderNetflix = [];

 $holderHulu = [];

 $holderAmazon = [];

 foreach($sources as $source) {

      if ($source['source'] == "netflix"){

          $neflix = true;

          array_push($holderNetflix,$source['display_name']); // collecting data

      }

      if ($source['source'] == "hulu"){

          $hulu = true;

          array_push($holderHulu,$source['display_name']);

      }

      if ($source['source'] == "amazon"){

           $amazon= true;

           array_push($holderAmazon,$source['display_name']);

      }



      echo '<a href="'.$source['link'].'" class="streaming-option">

            <img src="'. get_stylesheet_directory_uri()."/assets/images/sources/78x78/".$source['source'].'".png"/>

            <strong>'. $source['display_name'] .'</strong>

           </a>';

  }

您現在可以使用 holder 變量并內爆數組來打印列表


echo implode(",", $holderNetflix);

echo implode(",", $holderHulu);

echo implode(",", $holderAmazon);


查看完整回答
反對 回復 2022-10-28
  • 1 回答
  • 0 關注
  • 84 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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