Diziniz birleşmeli ise tabloyu oluştururken, o zaman neden sadece kontrol ve boş satırları atlamak değil? Örnek olarak:
Example 1:
if ($row['Monday'] == '')
{
// draw blank template
}
else
{
// draw using live data
}
(Denenmemiş, php 5.1 ve üstü için) ilave örnek dayanarak:
Example 2:
for($i = 0; $i < count($Record); $i++)
{
$recordDate = strtotime($Record[$i][field4]);
$dayOfWeek = $date('N', $recordDate);
switch ($dayOfWeek)
{
case '1':
// Monday
break;
case '2':
// Tuesday
break;
// and so on...
}
}
Edit
Yukarıdaki kodu satırları mümkün eksikliklerden ile, hafta içi sırayla olduğu varsayılmaktadır. İlk örnekte ile sorun, dizi oldukça örnekte olduğu gibi çağrışım olmasıdır. İkinci örnek problem, MTWFS gibi bir tablo sağlayabilir tamamen atlanır çıktı, eksik bir hafta içi satır sonuçları (Perşembe atlanır) olmasıdır.
Yani, bir haftanın her günü çizer döngü ve çek all çizmek için uygun gün için satır oluşturmak gerekir. Gün bulunursa, boş bir gün çizilir:
Example 3:
$dayNames = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'};
// Loop that walks the days of the week:
for($d = 1; $d < 7; $d++)
{
// Loop that checks each record for the matching day of week:
$dayFound = false;
for($i = 0; $i < count($Record); $i++)
{
$recordDate = strtotime($Record[$i][field4]);
$dayOfWeek = $date('N', $recordDate);
// output this day name in your own formatting, table, etc.
echo $dayNames[$i];
if ($dayOfWeek == $d)
{
// output this day's data
$dayFound = true;
break;
}
if (!$dayFound)
{
// output a blank template
}
}
}
Edit 2
Tamam o (ben sadece php falan tablolar çizmek isterim varsayarak) Bir çıkış rutin daha hafta içi tam bir kalabalık dizi olan daha fazla ilgi görünüyor. Yani bu hiçbir boşlukları ile 7 günlük bir dizi varmak için nasıl benim örnek:
Example 4:
$weekData = array(); // create a new array to hold the final result
// Loop that walks the days of the week, note 0-based index
for($d = 0; $d < 6; $d++)
{
// Loop that checks each record for the matching day of week:
$dayFound = false;
for($i = 0; $i < count($Record); $i++)
{
$recordDate = strtotime($Record[$i][field4]);
$dayOfWeek = $date('N', $recordDate);
// Add one to $d because $date('N',...) is a 1-based index, Mon - Sun
if ($dayOfWeek == $d + 1)
{
// Assign whatever fields you need to the new array at this index
$weekData[$d][field1] = $Record[$i][field1];
$weekData[$d][field2] = $Record[$i][field2];
$weekData[$d][field3] = $Record[$i][field3];
$weekData[$d][field4] = $Record[$i][field4];
// ...
break;
}
if (!$dayFound)
{
// Assign whatever default values you need to the new array at this index
$weekData[$d][field1] = "Field 1 Default";
// ...
}
}
}