Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 - Fatal编程技术网

在php foreach循环中获取数组中的下一个键

在php foreach循环中获取数组中的下一个键,php,arrays,Php,Arrays,我有一个选择框,希望获得数组中下一个值的键,并使用选项。这是我的代码 <select> <?php foreach ($make as $key => $make):?> <option value="<?php echo next($key);//not correct ?> - <?php echo $key; ?>"> <?php echo $make; ?></option> <

我有一个选择框,希望获得数组中下一个值的键,并使用选项。这是我的代码

<select>

<?php foreach ($make as $key => $make):?>
      <option value="<?php echo next($key);//not correct ?> - <?php echo $key; ?>"> <?php echo $make; ?></option>
<?php endforeach; 


这将适用于关联数组以及数字索引:

<?php foreach ($make as $key => $value):?>
    <?php next($make); ?>
    <option value="<?php echo key($make); ?> - <?php echo $key; ?>"> <?php echo $value; ?></option>
<?php endforeach; ?>


您可以使用许多解决方案来解决问题,但如果您有assoiatve数组或none order数组,或者没有numirc,则可以使用以下方法:

<?php
$array = ["a" => 1, "b" => 2, "c" => 3, 1 => "aa"];

next($array);
$key = key($array);
echo $key;
prev($array);
$key = key($array);
echo $key;

获取下一个元素的键的简单方法是使用array\u搜索数组的下一个元素,例如

<?php foreach ($makers as $key => $make):?>
  <option value="<?php echo array_search( next($makers), $makers );"> <?php echo $make; ?></option>
 <?php endforeach; 


这些键是数字的并且排列得很好只是出于兴趣,在循环的最后一次迭代中,当“下一次”时,您希望发生什么键不存在?为什么
value
属性想要包含一些您无法轻松使用以寻址到正确值的内容您的问题没有问题,但听起来确实需要重新思考数组结构,而不是尝试执行您描述的操作是的,它们是数值索引很好的解决方案,我现在看到了你的解决方案,我认为这种方式是最好的答案…所以我会投你一票…我不知道为什么OP不接受我的答案,但谢谢你确定这段代码运行于
foreach($make as$key=>$make):
?这对关联数组不起作用。它还将在最终迭代时抛出return一个不存在的键,因为此时数组中不存在
$key+1
。这可能是OP想要的,但是它没有“在php foreach循环中获取数组中的下一个键”。OP声明他的键是数字的,所以它回答了他的问题,但是谢谢,做得好。
<?php
$array = ["a" => 1, "b" => 2, "c" => 3, 1 => "aa"];

next($array);
$key = key($array);
echo $key;
prev($array);
$key = key($array);
echo $key;
<?php foreach ($makers as $key => $make):?>
  <option value="<?php echo array_search( next($makers), $makers );"> <?php echo $make; ?></option>
 <?php endforeach;