2011-07-22 1 views
-2

私は名前のリストを持っています。私はこのような2列にしたいと思います。 また、最初の列が2番目の列に続く場合は、最初の文字とこれを表示したい(続き...)。2列のリスト

#        C (continued...) 
1        Congo 
2        Cook Islands 
3        Costa Rica 
5        Cote D'Ivoire 
6        Croatia 

A        D 
Afghanistan      Denmark 
Africa       Djibouti 
Albania       Dominica 
Algeria 
American Samoa 

B 
Bahamas, The 
Bahrain 
Bangladesh 
Barbados 
Bouvet Island 
Brazil 
Bulgaria 

C 
Cambodia 
Cameroon 
Canada 
Cape Verde 
Caribbean 
Chad 
Chile 
China 
Christmas Island 
Colombia 
Comoros 

これはコード今持っているが、それは

$alphabet = null; 
while($row1 = mysql_fetch_array($locals)) { 
if($alphabet != substs($row1['RSTOWN'],0,1)) { 
echo strtoupper(substr($row1['RSTOWN'],0,1)); 
$alphabet = substr($row1['RSTOWN'],0,1); 
} 
echo '<li class="forward"> 
<a href="townpubs.php?RSTOWN='.$row1['RSTOWN'].'" rel="external">' 
.$row1['RSTOWN']. 
'<small class="listcounter">'.$row1['PubCount'].'</small> 
</a> 
</li>'; 
+1

不足しているチェコ共和国がありますなぜ? :-)まあ、真剣に、私はこれが疑問だと思っています...あなたがプログラマーなら、なぜあなたは何をしたいのですか?問題はどこですか? – TMS

答えて

0

は、名前を選択名前の数を言う= N、計算する第二のカラムにC(続き...)表示されませんhalfn = N/2

ストアアレイ内の、前のエントリは、同じ文字があり、その場合は格納場合は、インデックスhalfn + 1、

チェックと名前を保存した場合リスト内の "続き..."

奇数のエントリを処理するために、1からtruncate(リスト内のエントリの数+ 1)/ 2を出力します。各ラインの印刷に

[i]と、私は自分のコードに例を作るつもりはない

0

[私はhalfn +]。しかし、私は方法を説明します。あなたは単にそれらにSQLを実装する必要があります。

ライブ例:コードのhttp://kopli.pri.ee/stackoverflow/6794308.php

フルバージョン:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
    <title>List in 2 columns - Kalle H. Väravas</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <style> 
     html, body {margin: 0px; padding: 0px;} 
     .container {width: 200px; float: left;} 
    </style> 
</head> 
<body> 
<?php 

$countries = array(
    'Afghanistan', 
    'Africa', 
    'Albania', 
    'Algeria', 
    'American Samoa', 
    'Bahamas, The', 
    'Bahrain', 
    'Bangladesh', 
    'Barbados', 
    'Bouvet Island', 
    'Brazil', 
    'Bulgaria', 
    'Cambodia', 
    'Cameroon', 
    'Canada', 
    'Cape Verde', 
    'Caribbean', 
    'Chad', 
    'Chile', 
    'China', 
    'Christmas Island', 
    'Colombia', 
    'Comoros', 
    'Congo', 
    'Cook Islands', 
    'Costa Rica', 
    'Cote D\'Ivoire', 
    'Croatia', 
    'Denmark', 
    'Djibouti', 
    'Dominica' 
); 

$countries_count = count($countries); 
$breaking_point = round($countries_count/2); 
$foreach_counter = 0; 
$current_letter = ''; 

echo '<div class="container">'; 
foreach ($countries as $country) { 
    $foreach_counter++; 
    if ($country[0] != $current_letter) { 
     echo '<b>' . ($current_letter = $country[0]) . '</b><br />'; 
    } 
    echo $country . '<br />'; 
    if ($foreach_counter == $breaking_point) { 
     echo '</div><div class="container">'; 
    } 
} 
echo '</div>'; 

?> 
</body> 
</html> 
関連する問題