obtener la siguiente clave en la matriz en bucle foreach PHP

votos
2

Tengo un cuadro de selección y el deseo de obtener la clave del siguiente valor en la matriz para ir con la opción aquí es mi código

<select>

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

Aquí está la matriz

 Array
(
    [0] => Brand
    [1] => Alfa Romeo
    [123] => Alpina
    [142] => Aston Martin
    [152] => Audi
    [619] => Bentley
    [640] => BMW
    [1122] => Buick

)
Publicado el 27/11/2018 a las 16:50
fuente por usuario
En otros idiomas...                            


4 respuestas

votos
1

Puede resolver el problema con una gran cantidad de solución, pero si usted tiene una matriz o para ninguno gama assoiatve o no numirc, puede utilizar lo siguiente:

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

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

De lo contrario, si el array está ordenado y numérica se puede utilizar $key + 1;

Respondida el 27/11/2018 a las 17:03
fuente por usuario

votos
1

Esto funciona con una matriz asociativa, así como un índice numérico:

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

Tenga en cuenta, es confuso y probablemente una mala idea usar el mismo nombre de variable para la iteración como la matriz. así que en vez de foreach ($make as $key => $make)que lo hice foreach ($make as $key => $value)aquí.

El código anterior simplemente avanza el puntero en la matriz y luego obtiene la clave para el valor de la opción de usar key(). Puesto que no hay siguiente tecla en el elemento de la matriz final, el valor estará vacío.

Respondida el 27/11/2018 a las 17:02
fuente por usuario

votos
0

Una manera sencilla de obtener la clave del siguiente elemento es utilizar array_search del siguiente elemento de la matriz por ejemplo,

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

Espero que esto ayude.

Respondida el 27/11/2018 a las 17:14
fuente por usuario

votos
0

<select>

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

Sólo incrementar el $keypor 1, y tendrá el siguiente elemento de la matriz si las claves están en orden y son numéricos.

Respondida el 27/11/2018 a las 16:56
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more