【发布时间】:2017-03-05 23:55:18
【问题描述】:
我有一个按字母顺序排序的列表。为此,我使用以下方法确保数组中只有名称:
$oned = array_map('current', $productencr);
然后我将它们全部排序:
sort($oned, SORT_STRING | SORT_FLAG_CASE);
我的问题:
我还需要在循环中显示属于每个名称的描述。我怎样才能做到这一点并且仍然让我的名称数组一维并排序?
<?
// Product names
$producten = "SELECT producten.naam, producten.id, producten.omschr_kort FROM `producten` WHERE special = ''";
$productencon = $conn->query($producten);
$productencr = array();
while ($productencr[] = $productencon->fetch_assoc());
// Maak van de multidimensionale array een ééndimensionale
$oned = array_map('current', $productencr);
$lastChar = '';
// Sorteer de array op alfabetische volgorde
sort($oned, SORT_STRING | SORT_FLAG_CASE);
$i = 1;
// Loop de array
foreach($oned as $key => $val){
//De eerste waarde is leeg dus voor de code pas uit als key nummer is niet 0
if($key != '0'){
echo '<li class="tooltipproduct" data-tooltip-content="1">';
$char = $val[0];
if($char !== $lastChar){
if($lastChar !== ''){
echo '<br>';
}
echo '<span style="color:#eb9600;font-size:25px;font-weight:800;">'.strtoupper($char).'</span><br>';
$lastChar = $char;
}
echo '<span class="tooltip1" data-tooltip-content="#tooltip_content'.$i.'" style="cursor:pointer;">'.$val.'</span><br></li>';
echo '<div class="tooltip_templates" style="background-color:#eb9600;">
<span id="tooltip_content'.$i.'" style="min-height:180px;!important">
<h2 style="font-size: 20px;color:#fff;font-weight:bold;">'.$val.'</h2>
<span>Meer informatie nodig <br> of snel een scherpe offerte?</span>
<br>
<a style="position:absolute;bottom:20px;font-weight:bold;color:#fff;background-color:#c17c02;padding:10px;border-radius:3px;" href="contact.php">Vraag offerte aan</a>
<img style="max-width:90px;position:absolute;bottom:0px;right:12px;" src="images/contact_jess.png" /> <!-- assets/images/team/member-\'.rand(1,10).\'.png -->
</span>
</div>';
$i++;
}
}
?>
$val 将始终包含名称,因为数组 $oned 仅包含名称(因此我可以轻松地对它们进行排序)。我怎样才能在我的循环中使用另一个值? $oned 包含 ['naam'] 但我还需要 ['omschr_kort'] 循环。
也许我可以先对数组进行排序,然后将结果与另一个数组合并?
我当前的数组输出示例,选择了所有内容(不仅是名称):
Array
(
[0] => Array
(
[naam] => Naam1
[id] => 1
[omschr_kort] => Lorem ipsum
)
[1] => Array
(
[naam] => Naam2
[id] => 2
[omschr_kort] => Lorem ipsum
)
[2] => Array
(
[naam] => Naam3
[id] => 3
[omschr_kort] => Lorem ipsum
)
)
【问题讨论】:
-
为什么不使用二维数组并按第一列排序?