Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP foreach函数问题_Php_Arrays_Multidimensional Array_Foreach - Fatal编程技术网

PHP foreach函数问题

PHP foreach函数问题,php,arrays,multidimensional-array,foreach,Php,Arrays,Multidimensional Array,Foreach,当$e拥有所有1时,如何告诉第一个foreach函数中断 显然,这不是我正在使用的实际代码,但它非常相似,我需要遍历二维数组并记录键($e),当它们的值($a)为1时 上述代码在第一个1之后立即结束:( 注意:我的数组不一定由数字键组成 也许有更好的方法来解决这个问题……有什么想法吗 非常感谢你 例如: foreach ($arr as $k => $v){ foreach ($v as $e => $a){ if($a == 1){break;} //i

$e
拥有所有
1
时,如何告诉第一个
foreach
函数中断

显然,这不是我正在使用的实际代码,但它非常相似,我需要遍历二维数组并记录键(
$e
),当它们的值(
$a
)为
1

上述代码在第一个1之后立即结束:(

注意:我的数组不一定由数字键组成

也许有更好的方法来解决这个问题……有什么想法吗

非常感谢你

例如:

foreach ($arr as $k => $v){

  foreach ($v as $e => $a){
     if($a == 1){break;} 
     //if $e has all 1's not just a single 1 (how to code it ?)
  }

}

我希望它在经过芝加哥后立即停止。

我不是100%确定你想要什么,但这是否适合你的问题

Array
(
    ["ny"] => Array
        (
            [col0] => ""
            [col1] => ""
            [col2] => ""
            [col3] => ""
            [col4] => ""
            [col5] => ""
        )

    ["chicago"] => Array
        (
            [col0] => "1"
            [col1] => "1"
            [col2] => "1"
            [col3] => "1"
            [col4] => "1"
            [col5] => "1"
        )
)

这样,当找到1的次数与您将总数设置为10的次数相同时,它将中断。

我不能100%确定您想要什么,但这是否适合您的问题

Array
(
    ["ny"] => Array
        (
            [col0] => ""
            [col1] => ""
            [col2] => ""
            [col3] => ""
            [col4] => ""
            [col5] => ""
        )

    ["chicago"] => Array
        (
            [col0] => "1"
            [col1] => "1"
            [col2] => "1"
            [col3] => "1"
            [col4] => "1"
            [col5] => "1"
        )
)

这样,当找到1的次数与将总数设置为相同时,它将中断。(本例中为10)

这实际上可以工作,它也会打破外循环吗?如果你使用
break 2;
它会。2指定它必须突破2个循环,而不仅仅是最深的一个。这实际上可以工作,它也会打破外循环吗?如果你使用
break 2;
它会。2指定它必须突破2个loops,而不仅仅是最深的一个。你这个卑鄙的混蛋,很好的一个,而且可能比我的方法效率高得多。@Kevin-这只是值子集的一个计数(),所以它应该更快…尽管数组\u diff()可能比数组\u search()稍微慢一些,就像数组\u search()一样将在找到的第一个匹配项上停止搜索感谢您提醒我数组搜索无法解决此问题(需要检查数组是否完全为1)。您这个狡猾的混蛋,很好的一个,可能比我的方法效率更高。@Kevin-值子集上只有一个计数(),因此它应该更快…尽管数组不同()可能比array_search()稍微慢一些,因为array_search()在找到第一个匹配项时将停止搜索感谢您提醒我array_search无法解决此问题(需要检查数组是否完全为1)。是否可以删除中断并将值添加到临时数组中?您可以尝试:array_unique($v)并检查它是否有1个具有该特定值的项。是否可以删除中断并将该值添加到临时数组中?您可以尝试:array_unique($v)并检查它是否有1个具有该特定值的项。
foreach ($arr as $k => $v){ 
    if (count(array_diff($v, array(1))) == 0) {
        break;
    }
}