2011-11-11 22 views
0

這可能是一個密集的問題,看到我幾個星期前纔開始學習腳本,但是如何獲得我的代碼的第一個foreach語句中回顯的值,以便在同一個div中進行分組(而不是創建每個循環都有一個新的)?基本上,我想將它們作爲一個組在一個容器或表格中格式化,而不依賴於在第二個foreach中回顯的圖像。嵌套的foreach循環回顯值整合到一個div?

$alpharray = array(); 
while ($row = mysqli_fetch_assoc($result)) { 
    $alpharray[$row['letter']][] = $row; 
} 

foreach (str_split($_POST['search_term']) as $alpha) { 
    echo "<img class='clickable' img src='../Letterproject/images/{$alpharray[$alpha][0]['photoPath']}' width='100' height='140'></src></a>"; 
    echo '<div class="editable">'; 
    foreach ($alpharray[$alpha] as $tempvar) { 
     echo "<a href ='findall.php'><img src='../Letterproject/images/{$tempvar['photoPath']}' width='70' height='110'></src></a>"; 
    } 
    echo '</div>'; 
} 

對於上下文,應用程序從表單中提取字符並將它們作爲屬性與mysql中的圖像進行匹配。我將這些圖像傳遞給div並使用jquery使用戶能夠點擊圖像來查看相應的可編輯圖像。現在,來自T-H-E格式條目的代碼輸出是Ttt Hhh Eee,但我真的想要可點擊的T-H-E,然後可以編輯它,如果這是有道理的。

非常感謝您對我所做的事情的想法或批評角度。

回答

2

使用數組來存儲您的值,然後使用implode來輸出它們。您不必使用數組,也可以使用字符串並將它們連接起來。

這應該工作 - $first陣列是所有圖像標記的列表,而$second陣列是所有<div>元素的列表。

$first = $second = array(); 
foreach(str_split($_POST['search_term']) as $alpha) 
{ 
    $first[] = "<img class='clickable' img src='../Letterproject/images/{$alpharray[$alpha][0]['photoPath']}' width='100' height='140'></src></a>"; 
    $editable = array('<div class="editable">'); 
    foreach ($alpharray[$alpha] as $tempvar) 
    {            
     $editable[] = "<a href ='findall.php'><img src='../Letterproject/images/{$tempvar['photoPath']}' width='70' height='110'></src></a>";               
    } 
    $editable[] = '</div>'; 
    $second[] = implode('', $editable); 
} 

echo implode('', $first); 
echo implode('', $second); 
+0

哦,那很好。謝謝!我可以明確地使用它。我將不得不改變jquery組件,b/c它使用$(this).next()。show(); – Peter