求一个递归函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了求一个递归函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3485字,纯文字阅读大概需要5分钟。
内容图文
![求一个递归函数](/upload/InfoBanner/zyjiaocheng/198/3ba0cd7181ae4f108b51a5f189907b2e.jpg)
????????????????????????????????
我自己用CI写的一个函数,但是没办法准确判定;
function is_empty($mixed){
if(is_array($mixed) && !empty($mixed)){
foreach($mixed as $v){
$this->is_empty($v);
}
}
if($mixed === '0' || $mixed === 0 || $mixed === 'false' || $mixed === false || $mixed === 'null'){
return -1;
}
elseif(!empty($mixed)){
return -1;
}
else{
return 1;
}
}
??????-????????????????????????????????????
求大神帮忙
回复讨论(解决方案)
function is_empty($mixed){
if(is_array($mixed) && !empty($mixed)){
foreach($mixed as $v){
if($this->is_empty($v) == ??) return 1;
}
.....
红色的一定要!
但是我被你搞混昏了
由
if($mixed === '0' || $mixed === 0 || $mixed === 'false' || $mixed === false || $mixed === 'null'){
return -1;
}
可知为空时返回 -1
但
elseif(!empty($mixed)){
return -1;
}
又是不为空时返回 -1
if($mixed === '0' || $mixed === 0 || $mixed === 'false' || $mixed === false || $mixed === 'null'){
return -1;
}
这段的意思是不排除变量的值可能是字符串‘0’,‘false’,‘null'或者整型0,所以才用了全等于,其他非空项返回-1,空则返回1;
照你说的,循环里加了IF语句,但还是不行
????????????????????????????????????
if(is_array($mixed) && !empty($mixed)){
foreach($mixed as $v){
if($this->is_empty($v) == -1){
return -1;
}
}
}
if($mixed === '0' || $mixed === 0 || $mixed === 'false' || $mixed === 'null'){
return -1;
}
elseif(!empty($mixed)){
return -1;
}
else{
return 1;
}
那就是改
if($this->is_empty($v) == ??) return 1;
为
if($this->is_empty($v) == 1) return 1;
这样写可能好些
$a = array(array(),array(array(1),array()));$b = array(array(),array(array(),array()));echo no_empty($a);echo no_empty($b);//检查是否不为空function no_empty($ar) { if(! is_array($ar)) return 1; $res = 0; foreach($ar as $v) { if(is_array($v)) $res |= no_empty($v); else $res = 1; } return $res;}
成功了~把原来函数的判断顺序改了一下就成功了
-------------------------------------------------------------------------------------
function no_empty($ar) {
//排除字符串'0','false','null'和INT 0 、布尔false;
if($ar === '0' || $ar === 0 || $ar === 'false' || $ar === false || $ar === 'null'){
return 1;
}
//如果不是数组且不是上面的值,直接判定是否为空
elseif(! is_array($ar)){
if(!empty($ar)){
return 1;
}
return -1;
}
//递归
else{
//初始化$res
$res = -1;
foreach($ar as $v) {
//只要有多维数组里有一个非空元素值,就记录下来
if($this->no_empty($v) === 1){
$res = 1;
}
}
return $res;
}
}
我可不可以给分我自己
学学怎么玩。
内容总结
以上是互联网集市为您收集整理的求一个递归函数全部内容,希望文章能够帮你解决求一个递归函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。