簡體   English   中英

foreach循環不顯示所需的結果

[英]foreach loop not displaying desired result

嗨,伙計們,謝謝你的時間。 我的問題是關於。

我試圖循環我的文件夾中的圖像以及數據庫中的一個帖子,最終結果如下所示:

發布1
圖片1

發布2
圖2

郵政3
圖3

目前我得到了這個結果:

發布1
圖片1

發布1
圖2

發布1
圖片1

發布2
圖片1

發布2
圖2

發布2
圖3

我不想要這個結果。

以下是我的代碼:

    $post_info = get_posts();

foreach ($post_info as $info){
   $photos = glob('design/img/*');
   foreach($photos as $photo) {
    echo " <a href='feed.php?pid=".$info['post_id']." ' > 
           <div style='background:#FFF5C3'> <br> <h2> ".$info['person_mentioned']." </h2> 
        <h3 style='color: black'>    ".$info['body']." </h3> </div> </a>";
  echo " <img src='{$photo}' width='285px' height='200px' style='border: 5px solid black'>";


    }
}

謝謝你的時間。

試試這個(減去潛在的語言細節,因為我實際上沒有運行來檢查這個代碼)..它基本上是一個常規for循環而不是foreach。

$post_info = get_posts();
$photos = glob('design/img/*');

if (count($post_info) === count($photos)) { // According to your requirement, the counts would be the same
    $count = count($post_info);
    for ($i = 0; $i < $count; $i++) {
        $info = $post_info[$i];
        $photo = $photos[$i];
        echo " <a href='feed.php?pid=".$info['post_id']." ' > <div style='background:#FFF5C3'> <br> <h2> ".$info['person_mentioned']." </h2> 
        <h3 style='color: black'>    ".$info['body']." </h3> </div> </a>";
        echo " <img src='{$photo}' width='285px' height='200px' style='border: 5px solid black'>";
    }
}

希望有幫助:)

get_posts()獲取圖像詳細信息並刪除內部foreach循環可能會解決您的問題。

注意:用圖像字段替換$info['something_like_post_image']

$post_info = get_posts();

foreach ($post_info as $info) {
    //$photos = glob('design/img/*');
    //foreach ($photos as $photo) {
    echo " <a href='feed.php?pid=" . $info['post_id'] . " ' > 
           <div style='background:#FFF5C3'> <br> <h2> " . $info['person_mentioned'] . " </h2> 
        <h3 style='color: black'>    " . $info['body'] . " </h3> </div> </a>";
    echo " <img src='" . $info['something_like_post_image'] . "' width='285px' height='200px' style='border: 5px solid black'>";
    //}
}

UPDATE

/*
 * If your images have any naming convention like
 * imageFileName = "image_{POST_ID}.jpg"
 * then you can use below code (NO DATABASE ENTRY REQUIRED)
 * (ie, For post #1 image file would be "image_1.jpg";
 * and for post #2 image file would be "image_2.jpg")
 */

$post_info = get_posts();

foreach ($post_info as $info) {

    //filename = image_1.jpg or image_2.jpg or...
    $photoFileName = 'design/img/' . 'image_' . $info['post_id'] . '.jpg';

    if (file_exists($photoFileName)) {
        echo " <a href='feed.php?pid=" . $info['post_id'] . " ' > 
                           <div style='background:#FFF5C3'> <br> <h2> " . $info['person_mentioned'] . " </h2> 
                        <h3 style='color: black'>    " . $info['body'] . " </h3> </div> </a>";
        echo " <img src='" . $photoFileName . "' width='285px' height='200px' style='border: 5px solid black'>";
    }
}

注意:您必須與每個帖子保持關系,以對照您的獨特圖像; 否則,在列出時,您將無法通過帖子獲得該獨特圖片。 檢查以下選項以處理這種情況。

  1. 您可以將圖像名稱保存在數據庫中(對於每個帖子,您可以直接從數據庫中獲取圖像名稱)
  2. 為圖像使用命名約定(對於帖子#1使用唯一圖像名稱(比如image_1,對於帖子#2 image_2等)

更新 - 2

如果您正在尋找循環圖像(沒有任何條件),請使用以下代碼

/*
 * If you are looking for a solution that cycles each images
 * along with each post, try this one
 */

$post_info = get_posts();
$photos = glob('design/img/*');

$numPhotos = count($photos) + 1;

//assuming your post# starts with 1
$imageId = 1;
foreach ($post_info as $info) {

    //cycling
    if ($imageId % $numPhotos === 0) {
        $imageId = 1;
    }

    $photoFileName = 'design/img/' . 'image_' . $imageId++ . '.jpg';

    //no need of this checking, since you are cycling
    //if (!file_exists($photoFileName)) {
    //    $photoFileName = 'path/to/default/image.jpg';
    //}

    echo " <a href='feed.php?pid=" . $info['post_id'] . " ' > 
                               <div style='background:#FFF5C3'> <br> <h2> " . $info['person_mentioned'] . " </h2> 
                            <h3 style='color: black'>    " . $info['body'] . " </h3> </div> </a>";
    echo " <img src='" . $photoFileName . "' width='285px' height='200px' style='border: 5px solid black'>";
}

暫無
暫無

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

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