Pagina 1 din 1

Creare array din 3 array-uri

Scris: Mie Iul 04, 2018
de sterica
Salutare,

Am urmatoarele array-uri:

Cod: SelectaĊ£i tot

// array 1
Array
(
    [0] => Array
        (
            [Factura] => F1
            [Data] => DD.MM.YYYY
            [Cod_partener] => C1
            [CNP_emitent] => 
        )

    [1] => Array
        (
            [Factura] => F2
            [Data] => DD.MM.YYYY
            [Cod_partener] => C2
            [CNP_emitent] => 
        )

    [2] => Array
        (
            [Factura] => F3
            [Data] => DD.MM.YYYY
            [Cod_partener] => C3
            [CNP_emitent] =>XXXXXXXXXXXXX
        )
)


// array 2 - index-ul este CNP-ul din primul array
Array
(
    [XXXXXXXXXXXXX] => Array
        (
            [Id_emitent] => 2
            [Nume_emitent] => NUME 1
        )

    [XXXXXXXXXXXXX] => Array
        (
            [Id_emitent] => 3
            [Nume_emitent] => NUME 2
        )

    [XXXXXXXXXXXXX] => Array
        (
            [Id_emitent] => 4
            [Nume_emitent] => NUME 3
        )
)

// array 3 indexul este id-ul clientului
Array
(
    [2] => Array
        (
            [Cod_partener] => C1
            [Nume_Client] => Client 1
        )

    [31] => Array
        (
            [Cod_partener] => C2
            [Nume_Client] => Client 2
        )

    [12] => Array
        (
            [Cod_partener] => C3
            [Nume_Client] => Client 3
        )
)

Cum pot forma din cele trei array-uri un array de forma:

$arr_final = array('Factura' => , 'Data' => , 'Id_Client => , 'Id_emitent' => );

In primul array Cod_partener este indexul din al treilea array
In primul array CNP_emitent este indexul din al doilea array

Multumesc!

Creare array din 3 array-uri

Scris: Mie Iul 04, 2018
de MarPlo
Salut,
Nu inteleg din ceea ce spui:
1. In primul array Cod_partener este indexul din al treilea array.
2. Iar in cod la al treilea array: 'array 3 indexul este id-ul clientului'.

Oricum, din ce am inteles din cod, incearca functia setArr3() din acest script:

Cod: SelectaĊ£i tot

function setArr3($ar1, $ar2, $ar3){
 $re =[];
 $n_ar1 = count($ar1);
 for($i=0; $i<$n_ar1; $i++){
   if(isset($ar2[$ar1[$i]['CNP_emitent']])){
     foreach($ar3 as $k=>$v){
       if($ar1[$i]['Cod_partener']==$v['Cod_partener']){
         $re[] =['Factura'=>$ar1[$i]['Factura'], 'Data'=>$ar1[$i]['Data'], 'Id_Client'=>$k, 'Id_emitent'=>$ar2[$ar1[$i]['CNP_emitent']]['Id_emitent']];
         break;
       }
     }
   }
 }
 return $re;
}

//TEST

//array 1
$arr1 = [
  0=>['Cod_partener'=>99,'Factura'=>'fact', 'Data'=>'data', 'CNP_emitent'=>'cnpxx']
];

//array 2 - index-ul este CNP-ul din primul array
$arr2 = ['cnpxx'=>['Id_emitent'=>78]];

//array 3 indexul este id-ul clientului
$arr3 =[22=>['Cod_partener'=>99]];

$arr_fin = setArr3($arr1, $arr2, $arr3);
var_export($arr_fin);