Nueva pregunta

Pregunta:

Fecha: 26-02-2015 06:39:46 (En Español)

array_push() y arrays asociativos[Resuelta]

Mediante la función array_push() quiero agregar un elemento al final de un arreglo asociativo.

Por Ejemplo:
$clerk=array(
'user'=>'Scott',
'cuenta' =>'5598746',
'phone'=>'02597878',
'pass'=>'acvf45',
'codigo'=>'XMWERT01'
);
array_push ($clerk['edad'=>'24']);
echo $clerk[5];


Saludos!
Etiquetas: Array PHP - PHP - Pregunta Votos: 1 - Respuestas: 9 - Vistas: 27 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 26-02-2015 06:55:54 Esto no tiene sentido...
    echo $productos[5];

    podrías hacer un print_r($clerk)

    saludos
      Votos: 0 - Link respuesta
     
  • Fecha: 26-02-2015 07:33:00 Ola. Tenta não usar o array push. Podes usar isto:
    $clerk = array(
    	"user" => "Scott",
    	"cuenta" => 5598746,
    	"phone" => 02597878,
    	"pass" => "acvf45",
    	"codigo" => "XMWERT01"
    	);
    	$clerk["edad"] = 24;
    

    Ao fazer isto ele insere o edad = 24 no final do array.

    Quanto ao $produtos[5] não percebi o que queres fazer.
      Votos: 3 - Link respuesta
     
  • Fecha: 26-02-2015 11:03:37 El error esta de array_push() en adelante..

    yo haria algo asi y creo que seria mejor..
    
    $clerk = array(
        "user" => "Scott",
        "cuenta" => 5598746,
        "phone" => 02597878,
        "pass" => "acvf45",
        "codigo" => "XMWERT01"
        );
    
    $other = array( 'other' =>'xxxxx' );
    
    $clerk = arrary_merge( $other, $clerk);
    
    print_r($clerk);
    
    


    Esta función es muy limpia cuando se trata de arreglos asociativos..

    Saludos
      Votos: 4 - Link respuesta
     
  • Fecha: 26-02-2015 14:56:44
    <?php
    $clerk=array(
    'user'=>'Scott',
    'cuenta' =>'5598746',
    'phone'=>'02597878',
    'pass'=>'acvf45',
    'codigo'=>'XMWERT01'
    );
    
    
    array_push ($clerk['edad']=24,$clerk);
    
    echo $clerk['edad'];
    ?>
      Votos: -1 - Link respuesta
     
  • Fecha: 26-02-2015 17:55:07 Hola Crisitan, muy buena tu pregunta, lamento informarte que PHP no tiene una función nativa para realizar esto (si un milllón de alternativas), pero la función array_push genera una clave numérica siempre, por lo que no te será útilil para los array's asociativos.

    Aquí el link a la documentación oficial de la función: http://php.net/manual/es/function.array-push.php

    Como alternativa puedes crear tu propia función array_push_assoc(), por ejemplo:

    function array_push_assoc(array &$arrayDatos, array $values){
        $arrayDatos = array_merge($arrayDatos, $values);
    }


    Y luego utilizarla para tu caso de la siguiente forma:

    $clerk=array(
        'user'=>'Scott',
        'cuenta' =>'5598746',
        'phone'=>'02597878',
        'pass'=>'acvf45',
        'codigo'=>'XMWERT01'
     );
    
    //hago push de un solo dato
    array_push_assoc($clerk, array('edad'=>'24'));
     
    //hago push de multiples datos
    array_push_assoc($clerk, array('direccion'=>'123 FAKE ST.', 'otraclave'=>'otrovalor'));
    
    //veamos como quedo el array:
    echo '<pre>';
    print_r($clerk);
    echo '</pre>';


    /*
    Resultado:
    Array
    (
        [user] => Scott
        [cuenta] => 5598746
        [phone] => 02597878
        [pass] => acvf45
        [codigo] => XMWERT01
        [edad] => 24
        [direccion] => 123 FAKE ST.
        [otraclave] => otrovalor
    )
    */


    Espero que mi respuesta te sea de ayuda.

    Saludos y buen códio!
    Fernando
      Votos: 3 - Link respuesta
     
  • Fecha: 27-02-2015 02:19:55 Muchas Gracias!
    Fernando!

    Saludos!
      Votos: 1 - Link respuesta
     
  • Fecha: 25-01-2017 06:28:00 Recién estaba buscando este tipo de función array_push que sea asociativo.
    Buscando en google una de las primeras sugerencia se refería a este post el cual me ha dado la respuesta correcta ya que las anteriores no era lo que necesitaba.
    La solución la brindo Fernando aquí con la funcion creada array_push_assoc, muchísimas gracias ;)

    Estaría bueno que dicha función sea nativa en PHP
    Saludos
      Votos: 2 - Link respuesta
     
  • Fecha: 25-03-2022 19:07:04
    function array_push_assoc(array &$arrayDatos, array $values){
        $arrayDatos = array_merge_recursive($arrayDatos, $values);
    }
    

    Es una opción si no desean sobre escribir datos si poseen la misma 'clave'.
    PD: Gracias Fernando!
      Votos: 0 - Link respuesta
     
  • Fecha: 25-03-2022 19:48:58 PREGUNTA!
    Porque tiene ese comportamiento la funcion array_push_assoc() agregando algunos elementos con índice numérico. Si fuera del FOR si crea el elemento asociativo como se espera.
        function array_push_assoc(array &$arrayDatos, array $values){
        $arrayDatos = array_merge($arrayDatos, $values);
        }
        function multiplicacionSecuencial(int $multiplicando, int $inicio=0, int $fin=10):array{
            $array=[];
            array_push_assoc($array,["multiplicando"=>$multiplicando]);
            for ($i = $inicio; $i <= $fin; $i++){
                $multiplicador = strval($i);
                $producto = strval($multiplicando * $i);
                array_push_assoc($array,[$multiplicador=>$producto]);
            }
            array_push_assoc($array,["clave"=>"valor"]);
            array_push_assoc($array,["otraCosa"]);
            return $array;
        }
        echo "<pre>";
        var_dump(multiplicacionSecuencial(5,9,10));
    //se espera que el primer elemento de info sobre de que numero quiero la tabla, y los demas elementos cual seria el multiplicador y su producto respectivo
    /*
    array(5) {
      ["multiplicando"]=>
      int(5)
      [0]=>
      string(2) "45"
      [1]=>
      string(2) "50"
      ["clave"]=>
      string(5) "valor"
      [2]=>
      string(8) "otraCosa"
    }
    */
    
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com