PHP: 生成天干地支次序表
作者:黑马
天干地支次序表有现成的,现代汉语词典、历法书籍甚至一些挂历都有。我们用PHP生成天干地支次序表的意义在于,一方面加深对天干地支构成原理的理解,二方面练习编程算法,仅此而已。
天干共有十个:甲、乙、丙、丁、戊、己、庚、辛、壬、癸。地支有十二个:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。我国传统历法(农历)使用的纪年方式就是通过天干的10个元素和地支的12个元素按顺序一一配对,天干和地支各自反复循环,直至最后一个组合(即癸亥)结束,算是完成了一次配对,共配出60个组合。这就是所谓的天干地支次序表。
完整代码:
$tg_ar=array("甲","乙","丙","丁","戊", "己","庚","辛","壬","癸"); //天干数组
$dz_ar=array("子","丑","寅","卯","辰","巳", "午","未","申","酉","戌","亥"); //地支数组
for($i=0;$i<60;$i++) { //按顺序组成60个组合
$idx_tg=$i%10; //循环过程中天干的取值序号
$idx_dz=$i%12; //循环过程中地支的取值序号
$td_ar[]=$tg_ar[$idx_tg].$dz_ar[$idx_dz]; //组合结果
}
//带序号输出结果
$i=0;
while($i<count($td_ar)) {
$j=$i+1;
print $j.". ".$td_ar[$i++]."<br>";
}
其实我们完全可以在for语句中直接用输出语句取代组合结果的数组赋值,上述代码中之所以没有那么做,原因有二:一是将配对结果赋值给一个数组,这是为了程序未来扩展需求着想——有一个天干地支的次序表数组,程序将来可以借之做很多事情,二是为了演示需要:带序号输出可提高阅读性,同时也便于与现实表进行对照。
附:上述代码运行结果:
1. 甲子 2. 乙丑 3. 丙寅 4. 丁卯 5. 戊辰 6. 己巳 7. 庚午
8. 辛未 9. 壬申 10. 癸酉 11. 甲戌 12. 乙亥 13. 丙子 14. 丁丑
15. 戊寅 16. 己卯 17. 庚辰 18. 辛巳 19. 壬午 20. 癸未 21. 甲申
22. 乙酉 23. 丙戌 24. 丁亥 25. 戊子 26. 己丑 27. 庚寅 28. 辛卯
29. 壬辰 30. 癸巳 31. 甲午 32. 乙未 33. 丙申 34. 丁酉 35. 戊戌
36. 己亥 37. 庚子 38. 辛丑 39. 壬寅 40. 癸卯 41. 甲辰 42. 乙巳
43. 丙午 44. 丁未 45. 戊申 46. 己酉 47. 庚戌 48. 辛亥 49. 壬子
50. 癸丑 51. 甲寅 52. 乙卯 53. 丙辰 54. 丁巳 55. 戊午 56. 己未
57. 庚申 58. 辛酉 59. 壬戌 60. 癸亥
【 文章来源 本站原创[2008.3.24] 转载请注明出处与作者等信息 】
网 |

