teclado que para numerico matricial encender con 4x4 4x3 php arrays

php - que - teclado matricial 4x4 arduino y lcd



¿Cómo aumentar en 1 todas las teclas de una matriz? (6)

Bueno, hay una manera muy simple de hacerlo:

$arr = array(''a'', ''b'', ''c''); array_unshift($arr, null); unset($arr[0]); print_r($arr); /* Array ( [1] => a [2] => b [3] => c ) */

Solo funcionará para matrices densas simples, por supuesto.

Y esto es muy poco trivial (sin embargo, es una línea única Y funciona para arreglos densos y dispersos):

$arr = array_flip(array_map(function($el){ return $el + 1; }, array_flip($arr)));

¿Cuál es la solución más simple para aumentar en 1 todas las teclas de una matriz?

ANTES DE:

$arr[0] = ''a''; $arr[1] = ''b''; $arr[2] = ''c'';

DESPUÉS:

$arr[1] = ''a''; $arr[2] = ''b''; $arr[3] = ''c'';


No estoy seguro de por qué querrías hacer esto, pero solo deberías poder seguir:

$new_array = array(); foreach($arr as $key => $value){ $new_array[$key+1] = $value; } $arr = $new_array;


No estoy seguro si esto califica como un trazador de líneas pero es una manera diferente de hacerlo

$result = array_reduce(array_keys($arr),function($carry,$key) use($arr){ $carry[$key+1] = $arr[$key]; return $carry; },[]);


Puedes usar

$start_zero = array_values($array); /* Re-Indexing Array To Start From Zero */

Y si quieres comenzar desde el índice 1 usa

$start_one = array_combine(range(1, count($array)), array_values($array));


Sé que esta pregunta es bastante antigua, pero me encontré con un problema similar recientemente y se me ocurrió una buena línea para resolverlo para cualquier tipo de matriz que utilizara un entero arbitrario como la clave de inicio:

$array = array_combine(array_keys(array_fill($starting_index, count($array), 0)), array_values($array));

$ beginning_index es el valor que desee para la clave de número entero inicial, p. ej. 3.

Esto incluso se puede usar con matrices que contienen objetos complejos, a diferencia de la solución que usa matriz_filada y no le limita a iniciar el índice en 0 o 1 como algunas de las otras soluciones.


$count = count($arr); for($i=$count; $i>0; $i--){ $arr[$i] = $arr[$i-1]; } unset($arr[0]);