ホームページ >バックエンド開発 >PHPチュートリアル >カスタム関数の条件付き実行に関するアルゴリズムは困難です。ありがとう
条件に基づいてカスタム関数を実行するアルゴリズムを見つけるのは困難です。ありがとう!
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->在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
関数 wc0(){ エコー「wc0n」; } 関数 wc1(){ エコー「wc1n」; } 関数 wc2(){ エコー「wc2n」; } 関数 wc3(){ 「wc3n」をエコーします。 } $arr=array('','wc1','','wc3'); foreach($arr as $func){ if(function_exists($func)){ $func(); } } <br><font color="#e78608">------解決策---------</font><br>array_product または array_reduce を使用できます<br><br><br>$ar = array('','wc1','','wc3');<br>$r = array();<br>foreach($ar as $func)<br> $ r[] = $func ? $func() : 1;<br>echo array_product($r);<br><br>&& は、wc1 が 0 を返し、wc3 が 1 を返すと仮定すると <br> と同等です。 $r は 1,0,1,1 で、乗算後は 0<br><br> が得られます。wc1 が 1 を返し、wc3 が 1<br> を返すと仮定すると、$r は 1,1,1,1 になります。乗算すると 1<br> が得られます <br><br>------解決策---------<font color="#e78608"></font><br>PHP コード