0

これが私のコードです。これは私が求めている結果を表示しますが、それらを順序または順序でリストすることは可能ですか?

    $xml = simplexml_load_file('racing.xml');

    foreach ($xml->sport[0]->event_path->event_path as $gameinfo):

    $description        =   $gameinfo->description;
    $getdate            =   $gameinfo->event['date'];
    $event_id           =   $gameinfo->event['id'];
    $date               =   substr($getdate,0,10);

コード

    <?=substr($description, -5)?>

14:40、15:50、14:20、18:40 などのように変数を時間として残しますが、時間ではなく XML の順序で表示されます。

結果を日付変数でソートするために含めることができるコード行はありますか?

4

3 に答える 3

0

コードを改善するための最初の一般的なヒント:

foreach ($xml->sport[0]->event_path->event_path as $gameinfo):

悪い考えです。代わりに、私は自分自身にプレゼントを作り、新しい変数を与えます (後でお礼を言うことができます):

$gameinfos = $xml->sport[0]->event_path->event_path;
foreach ($gameinfos as $gameinfo):

だから今、あなたはソートしたい$gameinfos. ここでの問題は、それらが配列ではなく反復子であることです。このuasort関数 (および他のすべての配列ソート関数) は、これ以上役に立ちません。幸いなことに、これはすでに概説されています。反復を配列に変換できます。

$gameinfos = iterator_to_array($gameinfos, FALSE);

$gameinfosソート可能な配列になりました。ソート順(ソートする必要がある)を定義する値を取得するには、上で書い$gameinfosたときだと思います:substr($description, -5)

$order = array();
foreach ($gameinfos as $game) 
    $order[] = substr($game->description, -5)
;

array_multisort($order, $gameinfos);

// $gameinfos are sorted now.
于 2013-04-05T23:18:42.777 に答える
0

PHP には、ユーザー比較関数を定義できる非常に便利なソート関数があります。リンクを参照してください: http://www.php.net/manual/en/function.uasort.php

于 2013-04-04T16:07:50.417 に答える