2016-09-19 8 views
1

私はイベントのリストを日付順にソートし、各イベントは<p>の範囲内にあります。そこよりその200であり、それは(私はすでに少しそれをクリーンアップするために管理)次のようになります。200段落のリストの順序を逆にする

<p><strong>1 july 2011</strong> event 1<br> 
Place where the event 1 takes place<br> 
more infos about event 1<br> 
event more infos about event 1</p> 
<p><strong>2 september 2011</strong> event 2<br> 
Place where the event 2 takes place<br> 
more infos about event 2<br> 
event more infos about event 2</p> 
<p><strong>3 september 2011</strong> event 3<br> 
Place where the event 3 takes place<br> 
more infos about event 3<br> 
event more infos about event 3</p> 

彼らが現在の日付(最も古いイベント)によってソートされ、私はやりたいものを最新の出来事を最初にするために順序を逆転させる。

唯一のマーカーは、それぞれのイベントがカプセル化されている<p>です。日付は常に同じ形式ではありません。

私はexcel、notepad ++と彼の正規表現で試しましたが、PHPやJSと何か関係がありますか?

皆さん、お手伝いできますか?

ありがとうございます!

+0

が再前に、それらの機能を逆にあなたが配列に必要な段落のすべてを取得し、その配列を実行します出力、または後方を歩き回って出力することができます。その情報を使用して、いくつかのコードをまとめることができます。問題が発生したときに助けてくれます。 – gabe3886

+0

どのようにデータをペイントしていますか?そのコードでは、礼儀作法を非常に簡単に追加することができますが、共有するコードはあなたを助けることができません。私たちはここで失明しています。 –

+0

あなたの答えは、preg_match_all関数を使ってexplodeメソッドを考えさせました。私はそれを試してみましょう。ありがとう! – Cyc

答えて

0

場合によっては単純ですが、解決策を見つけるために他の人に説明する必要があります。だからそこにある。

$string = "<p>blablabla</p><p>blablabla 2</p>"; 
$text = str_replace('</p>', '', $string); 
$array = explode('<p>', $text); 
$array = array_reverse($array); 

とても簡単です!

2

JavaScriptでは、各段落を読み込んだ後、逆順に繰り返し処理することができます。これはあなたが後にしたことのようなものですか?

$(function() { 

    var paras = $('#container p'); 
    var newhtml = ""; 
    for(var i=paras.length-1;i>=0;i--) 
    { 
     newhtml += $(paras[i]).html() + "</br>"; 
    } 
    $('#container').html(newhtml); 
}); 

Example Fiddle

+0

プログラムによるソリューション –

0

あなたはREG-EXPを行いたい場合:

$a = '<p><strong>1 july 2011</strong> event 1<br> 
Place where the event 1 takes place<br> 
more infos about event 1<br> 
event more infos about event 1</p> 
<p><strong>2 september 2011</strong> event 2<br> 
Place where the event 2 takes place<br> 
more infos about event 2<br> 
event more infos about event 2</p> 
<p><strong>3 september 2011</strong> event 3<br> 
Place where the event 3 takes place<br> 
more infos about event 3<br> 
event more infos about event 3</p>'; 

$a = str_replace("\n","", $a); // maybe you dont need this line it happened to me couse of copy-paste from your question text 
preg_match_all("/\<p\>(.*)\<\/p\>/U", $a, $m); 

var_dump(array_reverse($m[1])); 
関連する問題