New question

Question:

Date: 25-03-2022 20:39:56 (In Spanish)

Esta función no tiene el comportamiento esperado dentro de una estructura FOR. array_push_assoc()[Unresolved]

PREGUNTA! Porque tiene ese comportamiento (no esperado) la funcion array_push_assoc() agregando algunos elementos con índice numérico. Si fuera del FOR sí crea el elemento asociativo como se espera.

#array_push_assoc() es como el array_push() pero para crear arrays asociativos!!!
    function array_push_assoc(array &$arrayDatos, array $values){
    $arrayDatos = array_merge($arrayDatos, $values);
    }

#funcion donde se implementa la fn array_push_assoc()
    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]);
        }
        #verificando el buen funcionamiento fuera del FOR:
        array_push_assoc($array,["clave"=>"valor"]);
        #comprobando el comportamiento de la funcion con un elemento indexado:
        array_push_assoc($array,["otraCosa"]);
        return $array;
    }

#implementado:
    echo "<pre>";
    var_dump(multiplicacionSecuencial(5,9,10));


#se esperaba que el primer elemento de informacion sobre de que numero quiero la tabla, y los demás elementos cual seria el multiplicador y su producto respectivo
# ej: ["9"]=> string(2) "45" en su lugar se lee [0]=>string(2) "45" =/
/*
array(5) {
  ["multiplicando"]=>
  int(5)
  [0]=>
  string(2) "45"
  [1]=>
  string(2) "50"
  ["clave"]=>
  string(5) "valor"
  [2]=>
  string(8) "otraCosa"
}
*/

Tags: Array PHP - PHP - Question Votes: 0 - Answers: 1 - Views: 5 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 02-04-2022 08:12:59 Si lo que quieres es insertar un $indice => $valor en una matriz asociativa es más sencillo hacer
    $matriz_asociativa[$indice] = $valor;
    que utilizar alguna variante de array_push()
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In