TransWikia.com

Fusionar dos arrays

Stack Overflow en español Asked by jose angarita on January 4, 2021

Hola a todos tengo dos array:

    $pedidosper=new PedidosPer();
    $salidapedidos=$pedidosper->salidaPedidos();

    $productosBloqueados= new PedidosPer();
    $productosBloqueados=$productosBloqueados->salidaPedidosBloqueados();

    $newArray = array();
    $newArray2 = array();

    for ($i=0; $i<count($salidapedidos); $i++)
    {
        for($j=0; $j<count($productosBloqueados); $j++)
        {
            if($salidapedidos[$i]->id_order == $productosBloqueados[$j]->idOrder)
            {
                $newArray[] = array('id_order' => $salidapedidos[$i]->id_order,'shop_name' => $salidapedidos[$i]->name_shop,'payment' => $salidapedidos[$i]->payment,'customer_firstname' => $salidapedidos[$i]->customer_firstname,
                'customer_lastname' => $salidapedidos[$i]->customer_lastname,'reference' => $salidapedidos[$i]->reference,'total'=> $salidapedidos[$i]->total,$salidapedidos[$i]->fecha,$productosBloqueados[$j]->estado_id);
            }
        }
            $newArray2[] = array($salidapedidos[$i]->id_order,$salidapedidos[$i]->name_shop,$salidapedidos[$i]->payment,$salidapedidos[$i]->customer_firstname,
            $salidapedidos[$i]->customer_lastname,$salidapedidos[$i]->reference,$salidapedidos[$i]->total,$salidapedidos[$i]->fecha,"");
        
    }

Les explico: Yo estoy consultando la base de datos A y una base de datos B, resulta que son bases de datos diferentes pero comparten informacion común. Entonces el primer ciclo for esta comparado y dice: Si el id_order de la BD A es igual a idOrder de la BD B entonces dame los datos de A y crea un arreglo con esos datos mas los datos de B. Ese array ha quedado de maravilla es decir $newArray.

Ahora existe un $newArray2 la idea de esa variable es que en el estén los datos que no estén en $newArray pero mi idea es fucionarlo, es decir, quiero fucionar el $newArray y el $newArray2.

Si ven la foto newArray

introducir la descripción de la imagen aquí

veran que están los datos con los campos que quiero

pero si ven la foto de newArray2

introducir la descripción de la imagen aquí

verán que están los mismos datos fijense en la clave id_order yo quiero sustituir esos datos ya que los que están newArray son los que quiero finalmente. Espero me haya explicado bien y puedan ayudarme a salir del hueco. Gracias.

One Answer

Entiendo que lo que quieres hacer es agregar la información de newArray a newArray2. Por lo que veo sólo hay un cambio de orden al nombrar un índice (shop_name) y un par de índices (0 y 1).

Puedes hacerlo a través del id_order:

$n = count($newArray2);
$m = count($newArray);

for($i=0;$i<$n;$i++){
   $newArray2[$i]->shop_name = $newArray[$i]->name_shop;
   for($j=0;$j<$m;$j++){
       if($newArray2[$i]->reference == $newArray[$j]['reference']){
           $newArray2[$i]->data = array($newArray[$j][0],$newArray2[$j][1]);
       }
   }
}

Espero haber respondido a tu pregunta.

Answered by cooper on January 4, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP