簡體   English   中英

使用數組的next()無法打印正確的值

[英]Using array's next() not printing the correct value

如果我有此數據,如何基於特定鍵獲取當前和下一個數組值

$data = array(
                array(
                    "name"=>"Joseph",
                    "location"=>"Wisconsin"
                ),
                array(
                    "name"=>"Sally",
                    "location"=>"Toronto"
                )
            );

這就是我正在做的事情,但似乎沒有顯示我的期望。 請協助。

foreach ($data as $val)
{
    echo 'current:'.$val['name'].'<br/>';

    $nextval = next($val);
    echo 'next:'.$nextval['name'].'<br/>';
}

這是正在打印出來的

current:Joseph
next:W
current:Sally
next:T

我希望是

current:Joseph
next:Sally
current:Sally
next:[..next value..]

您可以嘗試:

for ($i = 0; $i < count($data) - 1; $i++) {
  $current = $data[$i];
  $next = $data[$i + 1];
}

將您的foreach循環更改為此:

foreach ($data as $key=>$val)
{
    echo 'current:'.$val['name'].'<br/>';
    $nextval = $data[$key+1];
    echo 'next:'.$nextval['name'].'<br/>';
}

它具有您要求的行為。

您不能為此使用foreach ,因為foreach不使用數組的內部指針。

最好使用簡單for

for ($i = 0; $i < count($array); $i++)
    {
    echo $array[$i]['name'] . PHP_EOL;
    if (isset($array[$i+1]['name']))
        echo $array[$i+1]['name'] . PHP_EOL;
    }

但。 如果要使用下一個,可以進行while循環。

while (key($array) !== null)
    {
    echo current($array)['name'];
    echo next($array)['name'];
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM