易经八卦,PHP函数计算八卦规则
在易经中,我们用—表示阳;--表示阴;
在计算机中, 用0表示--,1表示—;
两爻组合得到 太阳, 太阴, 少阳, 少阴, 在计算机中, 分别用11,00,10,01表示
三爻组合, 得到八卦, 乾、兑、离、震、巽、坎、艮、坤, 分别用111,110,101......001,000表示
两个八卦, 上下组合成64卦, 乾111111, 履110111...艮000001, 坤000000;
占卦, 得到一个本卦, 通过计算机计算, 很轻松得到 错卦(按位异或),互卦,综卦,杂卦;
根据每爻变化, 很简单得到变卦.
计算机对识别 初六,初九, 上六,上九,以及六二, 六三,六四, 可以保存为数组;
在计算机中,需要打印八卦以及六十四卦 图,
需要安装Yijing Symbols.ttf字体;
如: 坤 ䷁ 或䷁ 乾 ䷀ 或 ䷀
<style>
@font-face{
font-family: "Yijing Symbols";
src:url("Yijing Symbols.ttf");
}
body {
font-family: "Yijing Symbols";
}
</style>
</head>
见图:

/**
* 6位二进制数,取反, 011001->100110
**/
function cuoGua($data = ''){
// 根据异或长度计算匹配的数值
$numberLen = strlen($data);
$xorValue = (1 << $numberLen) - 1; // 计算 2^$numberLen - 1 6位63
// 二进制到十进制
$decNumber = bindec($data);
// 进行按位异或运算
$resultXor = $decNumber ^ $xorValue;
// 补0
$result = str_pad(decbin($resultXor), $numberLen, '0', STR_PAD_LEFT);
return $result; // 返回十进制结果
}
function zongGua($data = ''){
$data = str_split($data);
$xinArr = array(
$data[5],
$data[4],
$data[3],
$data[2],
$data[1],
$data[0],
);
return implode('', $xinArr);
}
function zaGua($data = ''){
$data = str_split($data);
$xinArr = array(
$data[3],
$data[4],
$data[5],
$data[0],
$data[1],
$data[2],
);
return implode('', $xinArr);
}
function huGua($data = ''){
$data = str_split($data);
$xinArr = array(
$data[1],
$data[2],
$data[3],
$data[2],
$data[3],
$data[4],
);
return implode('', $xinArr);
}
function yaoName($data = ''){
$configArr = array(
'06' => '初六',
'16' => '六二',
'26' => '六三',
'36' => '六四',
'46' => '六五',
'56' => '上六',
'09' => '初九',
'19' => '九二',
'29' => '九三',
'39' => '九四',
'49' => '九五',
'59' => '上九',
);
$data = str_split($data);
foreach($data as $key => $val){
if($val > 0){
$result[$key] = $configArr[$key.'9'];
}else{
$result[$key] = $configArr[$key.'6'];
}
}
return $result;
}
function bianGua($data = '', $yao = 1){
$xinArr = str_split($data);
($xinArr[$yao-1] > 0)?$xinArr[$yao-1]=0:$xinArr[$yao-1]=1;
return implode('', $xinArr);
}
新的函数封装

function cuoGua($data = ''){
$data = str_split($data);
$result = array_map(function($v) {
return ($v === '1') ? '0' : '1';
}, $data);
return implode('', $result);
}
function zongGua($data = ''){
//123456位倒序 654321位
$data = str_split($data);
$result = array_reverse($data);
return implode('', $result);
}
function zaGua($data = ''){
//123位与456位交换
$data = str_split($data);
$splitIndex = 3;
$result = array_merge(
array_slice($data, $splitIndex),
array_slice($data, 0, $splitIndex)
);
return implode('', $result);
}
function huGua($data = ''){
//234位与345位组成新卦
$data = str_split($data);
$result = array_map(function($i) use ($data) {
return ($i < 3) ? $data[$i + 1] : $data[$i - 1];
}, array_keys($data));
return implode('', $result);
}

浙公网安备 33010602011771号