![](/img/trans.png)
[英]What's the difference in printing a value contained in an array key and printing a value contained in an array key of object property?
[英]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.