八字php分析源码

     $keydata= array(); //定义最终数据的数组    如:  $keydata['凶灾']['坐财月劫印带禄'] ='坐财月劫印带禄'
     $bazi_gouzao= array(); //定义八字特征构造数组  如:  $bazi_gouzao['格局'][] = '七杀格';例如bz_youwu("阳刃格",$bazi_gouzao["格局"])==1 查询有无阳刃格

     $sex =   //性别
    $bzniangan  = 年干  五行$bzWX_niangan  十神  $bzSS_nianga
    $bznianzhi    = 年支     五行$bzWX_nianzhi    十神$bzSS_nianzhi
    $bzyuegan =  月干   五行 $bzWX_yuegan      十神$bzSS_yuegan
    $bzyuezhi = 月支   五行 $bzWX_yuezhi   十神 $bzSS_yuezhi 
    $bzrigan  = 日干  五行 $bzWX_rigan   十神
    $bzrizhi   = 日支  五行 $bzWX_rizhi   十神$bzSS_rizhi
    $bzshigan =  时干  五行$bzWX_shigan    十神$bzSS_shigan
    $bzshizhi   =  时支   五行$bzWX_shizhi   十神 $bzSS_shizhi 
    $bz_RiGanZhi  =  八字日干支   
命宫 $bz_minggong

$bazi_RiGen   //八字日干的根 0为无根 1以上为几个根
$bazi_nianGen  八字年干的根 0为无根 1以上为几个根
$bazi_yueGen  八字月干的根 0为无根 1以上为几个根
$bazi_shiGen  //八字时干的根 0为无根 1以上为几个根
$bazi_tgGen =array();//十个天干在八字地支中有无根 0为没有  [丙] => 0 [丁] => 3


$bz_sizhufan   ( [己巳] => nian [丙子] => yue [辛卯] => ri [己丑] => shi )
$bz_sizhu   [nian] => 己巳 [yue] => 丙子 [ri] => 辛卯 [shi] => 己丑 )
$bazi_arr_tgfan   [己] => shi [丙] => yue [辛] => ri )
$bazi_arr_dzfan   [巳] => nian [子] => yue [卯] => ri [丑] => shi )


大运流年数组等

干支数组和相邻的函数
$tg_ar 天干数组  $tg_ar_flip天干数组反转
$dz_ar /地支数组
$jiazir60 //60甲子数组
gz_gewei()第一参数是干支  第一参数是所求的干支, 第三参数是个数组是60甲子干支还是天干数组或地支数组。

shensha($ganzhi,$zhi)  神煞函数////第一个参数是干支,弟二个参数是所对干支 返回一个数组


print_r();

数组:

$bazi_SSmaxEnd  最多的十神统称 官杀等 数组
 $bazi_WXmaxEnd   最多的五行数组
$bazi_SSmax100:八字的十神百分比  [劫财] => 36 [七杀] => 24

$bazi12gong  八字十二宫。 例如:$bazi12gong['癸'] ['禄']  = 子。
$bazi12gong_fan 反转 交换键值和键名 $bazi12gong['癸'] ['子']  = 禄。

$bz_siji  //四季数组 例如:$bz_siji['午']  = 夏。

$shishen //   例如: $shishen['甲']['乙'']  =劫财。

$shishen_fan 反转   例如:$shishen_fan['甲']['劫财'']  = 乙。

$WXto_SS //五行十神   例如:  $WXto_SS[ '木']['金']  = 官杀。

$WXto_SS_fan 反转五行十神   例如:  $WXto_SS[ '木']['官杀']  = 金。

$bz_siji  /四季数组('子'=>'冬',酉'=>'秋'......);//四季数组

$bz_KongWang 空亡数组 年日总的 ( [0] => 子 [1] => 丑 [2] => 戌 [3] => 亥 )
$bz_NKongWang 年空亡数组
$bz_RKongWang 日空亡数组
 
关系数组
$baizi_GuanXi //关系数组 生 制 刑 冲 害 泄 克 合 比 半三合为和 劫 例如: $baizi_GuanXi['戌'['甲'] = '克'。
$BZ_GuanXi_end  每个地支对应其他地支的关系
$BZ_GuanXi_end2  地支中所有的关系集合
$BZ_12GuanXi_end 十二地支对应八字四支的关系
$BZ_GuanXi_counts 八字关系的数量

$bz_jiagong=array( '子'=>array('寅'=>'丑','戌'=>'亥'), //夹拱数组

函数 :
  gz_wuxing ('甲') //构建天干的五行属性函数 阴阳五行函数   返回 木土 等五行

  bz_youwu($tiangan,$array)    //返回八字中的有无函数  第一个变量是单个干支 第二个是八字所有数组, 返回1是有这个, 2为没有 。

  bz_youwu2($tiangan,$array) //返回八字中的有无函数  第一个变量是数组 第二个是八字的数组 返回1是八字中有这些  2为没有这些。

  bz_youwu3($tiangan,$array)  //返回八字中的有无函数  第一个变量是数组 第二个是八字的地支数组,看看八字中有没有第一个数组中的值,八字中有几个匹配,返回有的数组,没有返回0。

gz_wuxing  /天干的五行属性函数  gz_wuxing("寅")  = 木。

gz_yinyang($num) //构建天干的五阴阳  gz_yinyang("寅")  = 1, 1为阳,2为阴。



//分为三大结构天干 五行 十神   带日干 不带日干 带藏干 不带藏干
//1干支结构 
$bz_sizhu_q=array('年'=>array($bzniangan,$bznianzhi),'月'=>array($bzyuegan,$bzyuezhi),'日'=>array($bzrigan,$bzrizhi),'时'=>array($bzshigan,$bzshizhi));

$bz_un_canggan //二维数组 干支结构 去天干和藏干

$bazi_arr = array( //干支结构 全套
   $bz_tg_quan //天干结构  带日干  地支带藏干 多维数组变一维数组

   $bz_unrigan_quan   //天干结构  去日干  地支带藏干 多维数组变一维数组

    $bz_un_rigan2   //天干结构  去日干  地支仅仅是本气 多维数组变一维数组

    $bazi_un_rigan2_counts   //八字里面各个天干的数目 去日干  不带藏干

    $bazi_un_dizhi2_counts = //八字地支本气天干的数目  不带藏干 

   $bazi_arr_to1_counts   //八字里面各个天干的数目 带日干 带藏干
$bazi_arr_dz_counts =八字里地支的数目

//2十神结构 

$bz_SS
  比肩] => 戊
 
 $bazi_SSarr  ////八字的十神结构   去除日干带藏干

 $bazi_SSarr2 //多维数组变一维数组

 $bazi_SS_counts   //八字里面各个十神的数目 带藏干

 $bazi_SS_counts_end  //返回包含数组中所有键名的一个新数组。
 
  $bazi_SSarr_Ben   ////八字的十神结构   去除了日干不带地支藏干

 $bazi_SSarr2_Ben //多维数组变一维数组    

 $bazi_SS_counts_Ben  //八字里面各个十神的数目不带藏干
 
 $bzSS_yuezhiBen = //八字月令的透天干数组 返回十神数组 订格局用

$bz_ss_zuo //天干坐支 比如食神坐杀
$bz_ssx_zuotong 天干坐支 比如财星坐比劫 

$bazi_SS_tg  [0] => 食神 [1] => 偏财 [2] => 日元 [3] => 偏财 )//天干十神
 
//3五行结构 
$bazi_WX  
( [印星] => 土 [比劫] => 金 [财星] => 木 [官杀] => 火 [食伤] 

$bazi_WXarr_1   ////八字的五行结构  全套带日干带藏干

$bazi_WXarr //多维数组变一维数组

$bazi_WX_counts  //八字里面各个五行的数目 带藏干

$bazi_WXarr_end //八字中最多的五行数组 带藏干

$bazi_WXarr_1Wcang   ////八字的五行结构   带日干地支不带藏干

$bazi_WXarr_WcangWri    //八字的五行结构   不带日干地支不带藏干

$bazi_WXdz_counts ///八字地支里面所有各个五行的数目 不带藏干

$bazi_WXtgW_counts //八字天干里面天干五行的数目 不带日干 Array ( [火] => 1 [金] => 1 [木] => 1 )

$bazi_WXDiZhi_counts  //八字地支里面所有的五行的数目带藏干  ( [木] => 3 [土] => 2 [水] => 1 [火] => 1 ) 

  
//八字基本结构完成


//新整理数组结构
  $bz_arr_tianganA  //天干数组去日干 仅仅是天干结构
  $bz_arr_dizhiA  /地支的藏干天干结构
  $bz_arr_dizhiA //地支的藏干天干结构 一维数组