0

何年もの間これを回避してきましたが、解決できないようです。「Term Year PrNo」というフィールドにいくつかのデータがあります。このフィールドのデータは次のようになります。

[2010-201110]Winter - 2010 - 1st 
[2010-201111]Winter - 2010 - 2nd 
[2010-201120]Spring - 2011 - 1st 
[2010-201121]Spring - 2011 - 2nd 
[2010-201130]Summer - 2011 - 1st 
[2010-201131]Summer - 2011 - 2nd
[2011-201210]Winter - 2011 - 1st 
[2011-201211]Winter - 2011 - 2nd 
[2011-201220]Spring - 2012 - 1st 
[2011-201221]Spring - 2012 - 2nd 
[2011-201230]Summer - 2012 - 1st 
[2011-201231]Summer - 2012 - 2nd 
[2012-201310]Winter - 2012 - 1st 
[2012-201311]Winter - 2012 - 2nd 
[2012-201320]Spring - 2013 - 1st 
[2012-201321]Spring - 2013 - 2nd 
[2012-201330]Summer - 2013 - 1st

そのフィールドのデータの各行をラジオ ボタンで選択する必要があります。これは、フィールドの内容を貼り付けて入力フィールドとして吐き出すことで実現できました。また、正規表現を使用して入力値の外観をきれいにしました。つまり、最初の並べ替えフィールドを削除しました。ここまでは順調ですね。私が解決できないように見える問題は、データをセグメントに分割し、2010 年から 2011 年に基づいて yearblock と呼ばれる div クラスにラップする必要があることです。2011-2012 | 2012-2013年、CSSを使ってきれいに並べられるように。昨年と今年を比較して、divクラスを開始する方法を理解できましたが、入力をエコーアウトした後、適切に終了する方法がわかりません。これが理にかなっていることを願っています。誰かが私のコードを見て、正しい方向に向けてください。

<?php
$arrayTermdates = array();

foreach($termsResult->getRecords() as $key => $term)
{
    $arrayTermdates[] = $term->getField('Term Year PrNo');
}

$arrayTermdates = array_unique($arrayTermdates);

sort($arrayTermdates, SORT_STRING | SORT_FLAG_CASE);

foreach($arrayTermdates as $termdate) 
{   
    preg_match_all("/\[[^)]+\]/",$termdate,$matches);

    $year = str_replace('[', '', $matches[0][0]);
    $year = str_replace(']', '', $year);            
    $year = str_replace(' ', '', substr($year, 0, -2));  

    $termdate = preg_replace("/\[[^)]+\]/","",$termdate);                   

    /*
    /  - opening delimiter (necessary for regular expressions, can be any character that doesn't appear in the regular expression
    \[ - Match an opening parenthesis
    [^)]+ - Match 1 or more character that is not a closing parenthesis
    \] - Match a closing parenthesis
    /  - Closing delimiter
    */

    if ($previousYear != $year || $previousYear == '') 
        {
            echo '<div class="yearblock">';
            echo '<strong>'.$year.'</strong><br />';                        
        }

?>

    <div class="term_value_list">
    <input name="Termdate[]" type="radio" value="<?php echo $termdate; ?>">
<?php       

    $TermdatesArray = explode('-',$termdate);

    $Termdisplay = $TermdatesArray[0].' '.$TermdatesArray[1].' ['.str_replace(' ', '', $TermdatesArray[2]).' PR]';              

    echo $Termdisplay;

?>

<!-- I need to echo an </div> for div class yearblock -->
4

2 に答える 2