postme-6ren">
gpt4 book ai didi

php - foreach逻辑不重复html

转载 作者:行者123 更新时间:2023-11-29 07:40:20 24 4
gpt4 key购买 nike

我想从 WordPress 数据库中获取所有页面标题。所以我创建了一个查询,例如:
$results = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = 'company_name' ORDER BY meta_value ASC");

之后是foreach循环提取所有值。
我想用第一个字母分隔每个页面名称。
所以我创建了一个substr函数获取第一个字母。
这一切都有效。问题如下
我需要回显这些值并将它们存储在正确的字母下。
喜欢:

---------A---------
A company
A nother company
---------B---------
B company
B nother company

所以我这样做了:

if($first == 'A')
{
echo '<a name="A"></a>
<div class="nav-indicator" id="nav-a">A</div>
<ul>'.$table.'</ul>
</li>';
}
if($first == 'B')
{
echo '<a name="B"></a>
<div class="nav-indicator" id="nav-b">B</div>
<ul>'.$table.'</ul>
</li>';
}
.... ETC.

$table var 包含 <li><table>...</table></li>

每次 foreach循环遍历数组,他重复 ---------A---------

出于某种愚蠢的原因,我不知道如何不重复此操作。我真的不想创建 26 个不同的 foreach循环执行字母表中的每个字母。

-- 编辑 --
这是 foreach 循环:

foreach ($results as $result){
$post_id = $result->post_id;
$company_name = get_post_meta($post_id, 'company_name', true);
$first = substr($company_name, 0, 1);
$table = '<li><table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#FFFFFF"><tr><td width="75%"><strong>'.$company_name.'</strong></td>';
if($first == 'A'){
echo '<a name="'.$first.'"></a><div class="nav-indicator" id="nav-'.strtolower($first).'">'.$first.'</div><ul>'.$table.'</ul>';}
}

最佳答案

好的,修复代码的一个非常简单的方法是执行以下操作:

设置外部变量:

$i = 0; 

if($first == 'A')
{
//Check if it's the first time in this loop.
if($i == 0){
$i = 1;
echo '<a name="A"></a>';
echo '<div class="nav-indicator" id="nav-a">A</div>';
}

echo '<ul>'.$table.'</ul>
</li>';
}

这样你就能知道 A 第一次被击中。如果第二次被击中,则 i 变量现在设置为 1,并且不会再次显示您的标题。

关于php - foreach逻辑不重复html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29255235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com