-2

关于这个已解决的帖子:按首字母分组,按字母顺序,最好的方法?

我如何将数据库中的 $id 传递到这个 foreach 循环中:

$res = array();

foreach($film as $f) {
    $currentletter = substr(html_entity_decode($f->title),0,1);
    $res[$currentletter][] = html_entity_decode($f->title);
}

foreach($res as $key=>$val){
   echo $key;
   foreach($val as $reqvals){
      echo $reqvals;
   }
}
4

2 回答 2

1

如果我从评论中正确理解了您,您可以将循环合并为一个;你不需要两个单独的循环。我假设你的数据库中的字段是'name'和'id';假设您也在对数据库查询进行排序。

$currentletter = '';

while ($r = mysql_fetch_array($q)){
    $name = $r['name'];       // Read the variables from the row
    $id = $r['id'];

    $thisletter = substr($name,0,1);
    if ($currentletter != $thisletter) {  // only print out the letter if it's changed
        $currentletter = $thisletter;
        echo $currentletter;
    }

    echo $name;
    echo $id;
    echo "<br>";
}
于 2013-08-14T13:46:03.663 回答
0

当您在 foreach 中使用 $val 时,这意味着您$val是一个数组。所以 $key 对于你的$val数组来说是唯一的。您可以通过这种方式在 foreach 中传递 $key:

 $k = $key;
   foreach($val as $reqvals){
      echo "Supar Key: "$k." ".$reqvals;
      echo "<br>";
   }
于 2013-08-14T13:22:26.653 回答