如果我有这些数据,如何获得当前和&基于特定键的下一个数组值
$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..]
答案 0 :(得分:1)
您可以尝试:
for ($i = 0; $i < count($data) - 1; $i++) {
$current = $data[$i];
$next = $data[$i + 1];
}
答案 1 :(得分:1)
将您的foreach循环更改为:
foreach ($data as $key=>$val)
{
echo 'current:'.$val['name'].'<br/>';
$nextval = $data[$key+1];
echo 'next:'.$nextval['name'].'<br/>';
}
它有你要求的行为。
答案 2 :(得分:-1)
你不能使用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;
}
但是。如果你想使用next,你可以循环。
while (key($array) !== null)
{
echo current($array)['name'];
echo next($array)['name'];
}