Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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 确定非连续多维数组的结尾_Php_Arrays_Loops - Fatal编程技术网

Php 确定非连续多维数组的结尾

Php 确定非连续多维数组的结尾,php,arrays,loops,Php,Arrays,Loops,我尝试使用foreach循环处理这个数组。当到达数组的末尾时,我需要调用一个函数。但是,我在确定何时到达数组末尾时遇到了一个问题 注意:由于我工作的特殊性,使用for,而或do。。。而循环不在等式中。我一直在使用foreach循环 另外,如果您建议我使用PHP的内置end()函数,我该怎么做?函数返回数组末尾的值。但是,在我的例子中,数组末尾的值本身是一个数组,而不是标量值/变量 下面是我的代码并尝试确定数组的结尾 $arr = array ( 0 => array (

我尝试使用
foreach
循环处理这个数组。当到达数组的末尾时,我需要调用一个函数。但是,我在确定何时到达数组末尾时遇到了一个问题

注意:由于我工作的特殊性,使用
for
do。。。而
循环不在等式中。我一直在使用
foreach
循环

另外,如果您建议我使用PHP的内置
end()
函数,我该怎么做?函数返回数组末尾的值。但是,在我的例子中,数组末尾的值本身是一个数组,而不是标量值/变量

下面是我的代码并尝试确定数组的结尾

$arr = array
(
   0 => array
   (
    'departures' => array('date'=>'23 Feb', 'location'=>'Lagos'),
    'returns'    => array('date'=>'24 Feb', 'location'=>'Abuja')
   ),

   1 => array
   (
    'departures' => array('date'=>'25 May', 'location'=>'Dubai'),
    'returns'    => array('date'=>'1 June', 'location'=>'New York')
   ),

   3 => array
   (
    'departures' => array('date'=>'2 Apr', 'location'=>'Tokyo'),
    'returns'    => array('date'=>'6 Apr', 'location'=>'Seoul')
   ),

   5 => array
   (
    'departures' => array('date'=>'2 Apr', 'location'=>''),
    'returns'    => array('date'=>'6 Apr', 'location'=>'')
   ),

   2 => array
   (
    'departures' => array('date'=>'2 Apr', 'location'=>'LA'),
    'returns'    => array('date'=>'6 Apr', 'location'=>'California')
   ),

   4 => array
   (
    'departures' => array('date'=>'2 Apr', 'location'=>''),
    'returns'    => array('date'=>'6 Apr', 'location'=>'Hong Kong')
   ),
);

$counter  = 0;
$arr_size = count($arr);

foreach ($arr AS $curr_array)
{
   $departures = $curr_array['departures'];

   if( empty($departures['location']) )
   {
      continue;
   }

   if( $counter == ($arr_size - 1) )
   {
      //reached end of array, execute function
   }

   //process array

   $counter++;
}

非常感谢您的帮助。

您可以将其转换为循环的顺序数组

$array = array('banana', 'apple', 'orange', 'grape');
$size = count($array);

foreach(array_values($array) as $index => $fruit) {
    if ($index === ($size - 1)) {
        // Last element in the array
        echo "The last fruit is {$fruit}";
    } else {
        echo $fruit.PHP_EOL;
    }
}

可以将其转换为循环的顺序数组

$array = array('banana', 'apple', 'orange', 'grape');
$size = count($array);

foreach(array_values($array) as $index => $fruit) {
    if ($index === ($size - 1)) {
        // Last element in the array
        echo "The last fruit is {$fruit}";
    } else {
        echo $fruit.PHP_EOL;
    }
}

可以将其转换为循环的顺序数组

$array = array('banana', 'apple', 'orange', 'grape');
$size = count($array);

foreach(array_values($array) as $index => $fruit) {
    if ($index === ($size - 1)) {
        // Last element in the array
        echo "The last fruit is {$fruit}";
    } else {
        echo $fruit.PHP_EOL;
    }
}

可以将其转换为循环的顺序数组

$array = array('banana', 'apple', 'orange', 'grape');
$size = count($array);

foreach(array_values($array) as $index => $fruit) {
    if ($index === ($size - 1)) {
        // Last element in the array
        echo "The last fruit is {$fruit}";
    } else {
        echo $fruit.PHP_EOL;
    }
}

不要让事情复杂化,这应该对你有用:

在这里,我首先获取数组的最后一个键,将所有键放入一个数组中,然后访问数组的最后一个元素==数组的最后一个键

在此之后,只要检查foreach循环中的键是否等于最后一个

$end = array_keys($arr)[count($arr)-1];

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

    if($k == $end)
        echo "last one!";
    else
        echo "still going!";

}

不要让事情复杂化,这应该对你有用:

在这里,我首先获取数组的最后一个键,将所有键放入一个数组中,然后访问数组的最后一个元素==数组的最后一个键

在此之后,只要检查foreach循环中的键是否等于最后一个

$end = array_keys($arr)[count($arr)-1];

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

    if($k == $end)
        echo "last one!";
    else
        echo "still going!";

}

不要让事情复杂化,这应该对你有用:

在这里,我首先获取数组的最后一个键,将所有键放入一个数组中,然后访问数组的最后一个元素==数组的最后一个键

在此之后,只要检查foreach循环中的键是否等于最后一个

$end = array_keys($arr)[count($arr)-1];

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

    if($k == $end)
        echo "last one!";
    else
        echo "still going!";

}

不要让事情复杂化,这应该对你有用:

在这里,我首先获取数组的最后一个键,将所有键放入一个数组中,然后访问数组的最后一个元素==数组的最后一个键

在此之后,只要检查foreach循环中的键是否等于最后一个

$end = array_keys($arr)[count($arr)-1];

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

    if($k == $end)
        echo "last one!";
    else
        echo "still going!";

}


那么问题是什么?你的目标是什么?@Rizier123,我正在试图确定我什么时候到达数组的末尾。使用计数器变量似乎不起作用。你的意思是在最后一次迭代时?@JayBhatt,你能帮我解释一下更多的代码吗?那么问题是什么?你的目标是什么?@Rizier123,我正在试图确定我什么时候到达数组的末尾。使用计数器变量似乎不起作用。你的意思是在最后一次迭代时?@JayBhatt,你能帮我解释一下更多的代码吗?那么问题是什么?你的目标是什么?@Rizier123,我正在试图确定我什么时候到达数组的末尾。使用计数器变量似乎不起作用。你的意思是在最后一次迭代时?@JayBhatt,你能帮我解释一下更多的代码吗?那么问题是什么?你的目标是什么?@Rizier123,我正在试图确定我什么时候到达数组的末尾。使用计数器变量似乎不起作用。你是说当你在最后一次迭代时?@JayBhatt,你能帮我解释一下更多的代码吗?我刚才说过它是非顺序的。@NaijaProgrammer然后简单地将它转换为循环的数组值,编辑答案。幸好OP没有关联数组!我刚才说过它是非顺序的。@NaijaProgrammer然后简单地将它转换为循环的数组值,编辑答案。幸好OP没有关联数组!我刚才说过它是非顺序的。@NaijaProgrammer然后简单地将它转换为循环的数组值,编辑答案。幸好OP没有关联数组!我刚才说过它是非顺序的。@NaijaProgrammer然后简单地将它转换为循环的数组值,编辑答案。幸好OP没有关联数组!