
Añadir registro al final de Array
Publicado por Sergio (1 intervención) el 22/02/2022 17:42:06
Buenas tardes compañeros,
Necesito vuestra ayuda porque estoy totalmente atascado.
Veréis, estoy programando un plugin de Wordpress, en el que necesito añadir a un array almacenado en la configuración con update_option, un registro nuevo recibido por POST desde un formulario.
Por mas vueltas que le doy no consigo saber donde esta el problema, no me deja adjuntarlo directamente tras leer el valor actual por un error "Fatal error: [] operator not supported for strings", y he tratado de regenerar nuevamente el array, pero no se porque me lo mete en un subnivel ...
Debería de crear:
array('16' => array('cantidad' => "3",'tipo' => "sesion"),'15' => array('cantidad' => "8",'tipo' => "subscripcion"));
y me esta creando:
array(2) { [0]=> array(2) { ["cantidad"]=> string(1) "8" ["tipo"]=> string(12) "subscripcion" } [1]=> array(1) { [14]=> array(2) { ["cantidad"]=> string(1) "7" ["tipo"]=> string(8) "sesiones" } } }
El código que tengo en estos momentos, y que no paro de modificar y darle vuelta es:
Muchas gracias por vuestra ayuda
Necesito vuestra ayuda porque estoy totalmente atascado.
Veréis, estoy programando un plugin de Wordpress, en el que necesito añadir a un array almacenado en la configuración con update_option, un registro nuevo recibido por POST desde un formulario.
Por mas vueltas que le doy no consigo saber donde esta el problema, no me deja adjuntarlo directamente tras leer el valor actual por un error "Fatal error: [] operator not supported for strings", y he tratado de regenerar nuevamente el array, pero no se porque me lo mete en un subnivel ...
Debería de crear:
array('16' => array('cantidad' => "3",'tipo' => "sesion"),'15' => array('cantidad' => "8",'tipo' => "subscripcion"));
y me esta creando:
array(2) { [0]=> array(2) { ["cantidad"]=> string(1) "8" ["tipo"]=> string(12) "subscripcion" } [1]=> array(1) { [14]=> array(2) { ["cantidad"]=> string(1) "7" ["tipo"]=> string(8) "sesiones" } } }
El código que tengo en estos momentos, y que no paro de modificar y darle vuelta es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
settings_fields ('virtuagym_settings_group');
do_settings_sections ('virtuagym_settings_group');
if( isset( $_POST['submit'])) {
$productos_mapeados=get_option('arrayproductos');
$nuevoarray=[];
foreach($productos_mapeados as $key => $valor){
$nuevoarray= array(
$key => array(
'cantidad' => $valor['cantidad'],
'tipo' => $valor['tipo']
));
}
$nuevoarray[]=array($_POST['id'] => array('cantidad' => $_POST['cantidad'],'tipo' => $_POST['tipo']));
var_dump($nuevoarray);
update_option('arrayproductos',$nuevoarray);
}?>
Muchas gracias por vuestra ayuda
Valora esta pregunta


0