Php 返回使用foreach处理数组的成功或失败

Php 返回使用foreach处理数组的成功或失败,php,function,return-value,Php,Function,Return Value,我有一个PHP函数,它有一个数组作为参数,我使用foreach来处理数组。我的问题是,如何使用函数已彻底完成foreach过程的条件返回true或false,而不在foreach过程中的一个步骤上发现任何故障 比如: function do_process($array_vars){ foreach($array_vars as $array_var) { //do the process } return (foreach process succes

我有一个PHP函数,它有一个数组作为参数,我使用
foreach
来处理数组。我的问题是,如何使用函数已彻底完成
foreach
过程的条件返回
true
false
,而不在
foreach
过程中的一个步骤上发现任何故障

比如:

function do_process($array_vars){
    foreach($array_vars as $array_var) {
        //do the process
    }

    return (foreach process success) ? true : false;
}

您可以在任何时候从函数返回,包括在检测到故障时从foreach循环中返回:

function do_process($array_vars){
   foreach($array_vars as $array_var) {
     // do the process
     if (this step of the process failed)
       return false;
   }

   // The foreach loop must have completed successfully
   return true;
}

这取决于你所说的“彻底”是什么意思。
一旦出现问题,您可以立即中止:

function foo($array) {
    foreach ($array as $foo) {
        if (/* something or other */) {
            return false;
        }
        ...
    }
    return true;
}
或者,您可以继续执行阵列的其余部分,但请记住出现了问题:

function foo($array) {
    $success = true;
    foreach ($array as $foo) {
        if (/* something or other */) {
            $success = false;
        }
        ...
    }
    return $success;
}

我会这样做:

function do_process($array_vars){
    $success = true;
    foreach($array_vars as $array_var){
        if (some condition appeared){ $success = false; }
    }

    return $success;
}

你可以那样做

function process($array_items) {

   foreach($array_items as $item) {
      //processing to array goes here......
      if($some_bottle_neck or $failure)
          return false;
      if($item == end($array_items))
          return true;
   }
}

希望这就是您的解决方案。

彻底完成了foreach的过程
foreach
对我来说从未失败过~我的意思是当foreach中的一个步骤失败时,对不起,我将编辑我的问题。请不要使用
foreach:
/
endforeach
语法,它会给我带来身体上的痛苦。这更有意义=)这能确保,那个数组已经被完全处理了?@Aqeel这到底是什么意思
foreach
始终遍历所有数组元素。任何可能失败的处理都由您自己来检测。整个
$perfect\u过程
变量都是无用的,只是
在最后返回true
。如果函数
之前返回false
,它将已经
返回false
。此外,如果一个数组包含两个相等的值,则会出现错误。