array push con keys php – php array

Pregunta:


Buen día.

Estoy tratando de crear un array con valores agrupados por categorías, mediante AJAX recibo dos variables una contiene un string con el nombre de la categoría y la otra contiene un array con los valores de la categoría por ejemplo:

categoria:tipoempleo
valorescategoria:porhoras,pordias,pormes

$categoria = $_POST["nombrecategoria"];
$valores = $_POST["valorescategoria"];


$categorias = array();

Ya que son varias categorías necesito que en el array se diferencíen las mismas, ¿cómo hago con array_push para ir agregando categorías al array? ¿o se debe hacer de otra forma?

Algo así

array(2) {
["tipoempleo"]=>
    array(3) {
        [0]=>
        string(8) "porhoras"
        [1]=>
        string(6) "pordia"
        [2]=>
        string(6) "pormes"
    }
["ubicacion"]=>
    array(2) {
        [0]=>
        string(7) "interna"
        [1]=>
        string(7) "externa"
    }

}

Espero poder tener algún tipo de orientación, ademas debo estar actualizando el array es decir a tipo empleo le puedo quitar un valor o agregar otro, es la manera mas recomendar de hacer este proceso o hay uno mejor, gracias por su atención.

Preguntado por: DIANGA

A menos que no esté entendiendo la pregunta, estás intentando agregar elementos al arreglo según los vas “recibiendo”, pero teniendo en cuenta que es un arreglo asociativo no necesitas usar array_push(), simplemente agregar la llave y sus valores directamente:

$categorias = [];

// Recibes la primera categoría y sus valores
$categoria = 'tipoempleo';
$valores = ['porhoras', 'pordias', 'pormes'];

// Los agregas al arreglo
$categorias[$categoria] = $valores;

// Recibes la segunda categoría y sus valores
$categoria = 'ubicacion';
$valores = ['externa', 'interna'];

// Los agregas al arreglo
$categorias[$categoria] = $valores;

// así sucesivamente

Puedes usar la funcion array_push , te pongo un ejemplo:

$categoria=array();
$valores=array();
$principal = array($categoria,$valores);

array_push($principal[0],"tipoempleo");
array_push($principal[1],"pordia","porhora");

print_r($principal);

Fuente

Tags:,

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *