> 백엔드 개발 > PHP 튜토리얼 > 算法,关于条件运行自定义函数的,有难度。多谢

算法,关于条件运行自定义函数的,有难度。多谢

WBOY
풀어 주다: 2016-06-13 10:51:02
원래의
871명이 탐색했습니다.

求一个算法,关于条件运行自定义函数的,有难度。谢谢!

PHP code
<!--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
로그인 후 복사


------解决方案--------------------
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();    }}<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>&& 与相当于乘法<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><font color="#e78608">------解决方案--------------------</font><br>
로그인 후 복사
PHP code
<?php function wc0(){        return 1;    }        function wc1(){        return 1;    }        function wc2(){        return 0;    }        function wc3(){        return 1;    }    $arr0=array('','wc1','','wc3');//此数组了定义了,要执行那些函数及方法    $arr1=array('wc0','wc1','wc2','');    $arr2=array('wc0','','','wc3');        for($i=0;$i<3;$i++){        //数组名        $name = 'arr'.$i;        //数组值        $tmpArr = $$name;                $result = 1;        foreach($tmpArr as $fun){            if($fun != ''){                $result = $result && $fun();            }        }                echo $result? 'true' : 'false';        $result == 1;    }//End_php<br /><font color="#e78608">------解决方案--------------------</font><br>这个比较简单.<br>
로그인 후 복사
PHP code
$a=Array('a','b','','c');For($i=0;$i
                 
              
              
        
            
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿