2011-08-07 13 views
-3

イベントをフォローとして並べ替えるために使用されているこのコードは私に問題をもたらしていると思います。それがトリガされるエラーは次のとおりです。PHPイベントと配列のソート、ブーリアンの組み合わせの問題

Notice: Undefined variable: combined in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 941 

Notice: Undefined offset: 3 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 893 

Notice: Undefined offset: 3 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 895 

Notice: Undefined variable: combined in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 941 

Notice: Undefined offset: 4 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 893 

Notice: Undefined offset: 4 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 895 

Notice: Undefined variable: combined in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 941 

Notice: Undefined offset: 5 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 893 

Notice: Undefined offset: 5 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 895 

Notice: Undefined variable: combined in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 941 

Notice: Undefined offset: 6 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 893 

Notice: Undefined offset: 6 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 895 

Notice: Undefined variable: combined in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 941 

Notice: Undefined offset: 7 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 893 

Notice: Undefined offset: 7 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 895 

Notice: Undefined variable: combined in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 941 

Notice: Undefined offset: 8 in /services10/webpages/c/m/cms.norlink.ca/public/admin/new_events.php on line 893 

コードは以下の通りです:

function sortevents($days_events) 
     { 
    if (!is_array($days_events)) 
    { 
     return array(); 
    } 
    if (0 === ($ec=count($days_events))) 
    { 
     return array(); 
    } 
    $neworder = array(); 
    $oldorder_used = array(); 
    $allordered = false; 
    for ($i = 0; $i <= $ec; $i++) 
    { 
     $oldorder_used[$i] = false; 
    } 
    $i = 0; 
    $sd = null; 
    $si = -1; 
    $ei = 0; 
    while (!$allordered) 
    { 
     if ((null == $sd || $sd > $days_events[$i]['startint']) && !$oldorder_used[$i]) 
     { 
      $sd = $days_events[$i]['startint']; 
      $si = $i; 
     } 
     else 
     { 
      $i++; 
      continue; 
     } 

     if ($i === ($ec-1)) 
     { 
      $oldorder_used[$si] = true; 
      $neworder[$ei] = $days_events[$si]; 
      $ei++; 
      $i = 0; 
     } 
     $i++; 
     $allordered = combinebooleans($oldorder_used); 
    } 
} 

//takes an array of booleans and combines them 
function combinebooleans($arr_bools) 
{ 
    //if not an array of booleans 
    if (!is_array($arr_bools)) 
    { 
     //if not a boolean 
     if (!is_bool($arr_bools)) 
     { 
      return false; 
     } 
     //if it is a boolean then lets return it 
     else 
     { 
      return $arr_bools; 
     } 
    } 
    else 
    { 
     //variable to hold combined booleans 
     $combined; 

     //cycle through the array of booleans and 
     foreach ($arr_bools as $curb) 
     { 
      $combined = $combined | $curb; 
     } 
     return $combined; 
    } 
} 
+1

いずれの場合もエラーを修正する必要がありますが、何が問題なのですか? – hakre

+1

あなたはあなたの仕事を提供できますか?私はそれがより簡単に解決できると思う。 – RiaD

+1

これらは誤りではなく、通知である。問題は何ですか?コードは機能しませんか? –

答えて

2

あなたがSQLデータベースにあなたのeventsを保存する場合は、それをソートするための最良の方法はされます場合はORDER BY

を使用してあなたはおそらく使用することができますPHPでそれをソートする必要があります

$ eventAが$ eventBた後でなければなりません場合は$ eventAが0
  • 1または他の値以下大きい$ eventBの前にするかどう

    *この機能は

    • -1またはその他の値が0未満を返す必要があります
    • 0過度に
  • +0

    最初の部分では、データがSQLデータベースから来たものと仮定しています。 2番目のセクションでは、ソートを比較ソートで行うことができると仮定しています。おそらく両方の仮定が正しいと思うかもしれませんが、あなたは答えにこれらを書き留めておいてください。 –

    +0

    @yi_H、ありがとう、ありがとう、 – RiaD

    +0

    私はこれをもっと簡単にやり遂げることができませんでした。本当に私はそれを後にカレンダーに出力しようとしています。 –

    関連する問題