算法,关于条件运行自定义函数的,有难度。多谢
程序员文章站
2022-05-15 12:23:49
...
求一个算法,关于条件运行自定义函数的,有难度。谢谢!
------解决方案--------------------
- PHP code
在PHP中,求一算法,麻烦各位了,如下:$arr0,$arr1及$arr2,$arr3,元素个数是固定的4,不会有变化$arr0=array('','wc1','','wc3');//此数组了定义了,要执行那些函数及方法$arr1=array('wc0','wc1','wc2','');$arr2=array('wc0','','','wc3');共有自定义函数4个,分别是function wc0(){}function wc1(){}function wc2(){}function wc3(){}问题开始:对于$arr0,$arr1,$arr2几个数组,当其元素不为空时,便执行相应的自定义函数。举例如下:当遇到$arr0=array('','wc1','','wc3');执行2个函数:wc1() 与wc3()当遇到$arr1=array('wc0','wc1','wc2','');执行3个函数,wc0(),wc1(),wc2()当遇到$arr2=array('wc0','','','wc3');执行2个函数,wc0(),wc3().......您看出规律了吗?对就是这个样子,我现在要改写成一个函数,求算法。即当遇到$arr,便执行XXXX
------解决方案--------------------
- PHP code
function wc0(){ echo "wc0\n";}function wc1(){ echo "wc1\n";}function wc2(){ echo "wc2\n";}function wc3(){ echo "wc3\n";}$arr=array('','wc1','','wc3');foreach($arr as $func){ if(function_exists($func)){ $func(); }}
------解决方案--------------------
array_product 或 array_reduce 都可以
对于
$ar = array('','wc1','','wc3');
$r = array();
foreach($ar as $func)
$r[] = $func ? $func() : 1;
echo array_product($r);
&& 与相当于乘法
假定 wc1 返回 0、wc3 返回1
则 $r 为 1,0,1,1 连乘后得 0
假定 wc1 返回 1、wc3 返回 1
则 $r 为 1,1,1,1 连乘后得 1
------解决方案--------------------
- PHP code
------解决方案--------------------
这个比较简单.
- PHP code
$a=Array('a','b','','c');For($i=0;$i
上一篇: MySQL 的事件调度器(Event Scheduler)_MySQL
下一篇: 在PHP中调用接口