脚本宝典收集整理的这篇文章主要介绍了PHP – 字符串逻辑分析 – “X和Y或Z”,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
$LOGic = 'elephants and tigers or dolphins and aPEs or monkeys and humans and gorillas and and 133322 or 2';
并将其解析为数组,我假设看起来像:
$parsed_to_or = array( array('elephants','tigers'),array('dolphins','apes'),array('monkeys','humans','gorillas','133322'),array('2') );
这是我到目前为止:
$logic_e = preg_split('/\s+/',$logic); $or_segments = array(); $and_group = array(); foreach($logic_e as $fragment) { if (PReg_match('/^(and|&&)$/i',$fragment)) { continue; } elseif (preg_match('/^(or|\\|\\|)$/i',$fragment)) { if (count($and_group)>0) { $or_segments[] = $and_group; $and_group = array(); } continue; } else { $and_group[] = $fragment; continue; } } if (count($and_group)>0) { $or_segments[] = $and_group; $and_group = array(); }
您可以执行以下操作:
<?PHP $logic = 'elephants && tigers || dolphins && apes || monkeys and humans and gorillas and && 133322 or 2'; $result = array(); foreach (preg_splIT('/ (or|\|\|) /',$logic) as $parts) { $bits = preg_split('/ (and|&&) /',$parts); for ($x=0; $x<count($bits); $x++) { $bits[$x] = preg_replace('/\s?(and|&&)\s?/','',$bits[$x]); } $result[] = $bits; } echo '<pre>'; var_dump($result);
这将导致以下结果:
array(4) { [0]=> array(2) { [0]=> string(9) "elephants" [1]=> string(6) "tigers" } [1]=> array(2) { [0]=> string(8) "dolphins" [1]=> string(4) "apes" } [2]=> array(4) { [0]=> string(7) "monkeys" [1]=> string(6) "humans" [2]=> string(8) "gorillas" [3]=> string(6) "133322" } [3]=> array(1) { [0]=> string(1) "2" } }
以上是脚本宝典为你收集整理的PHP – 字符串逻辑分析 – “X和Y或Z”全部内容,希望文章能够帮你解决PHP – 字符串逻辑分析 – “X和Y或Z”所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。