2017-03-03 4 views
0

Ich habe ein Array von CSV-Import. Das Array sieht so ausArray zum Array hinzufügen PHP

Array 
(
    [0] => Array 
     (
      [DOCategory] => IM 
      [ToCustomerCode] => M-CBC 
      [ExternalDocNo] => DRDOC-DJ-GBAR10-25 
      [Item] => S160373 
      [Quantity] => 4 
      [Remark2] => TEST 
     ) 

    [1] => Array 
     (
      [DOCategory] => IM 
      [ToCustomerCode] => M-CBD 
      [ExternalDocNo] => DRDOC-DJ-GBAR10-25 
      [Item] => S160373 
      [Quantity] => 5 
      [Remark2] => TEST2 
     ) 

    [2] => Array 
     (
      [DOCategory] => IM 
      [ToCustomerCode] => M-CJ 
      [ExternalDocNo] => DRDOC-DJ-GBAR10-25 
      [Item] => S160373 
      [Quantity] => 5 
      [Remark2] => TEST3 
     ) 

    [3] => Array 
     (
      [DOCategory] => IM 
      [ToCustomerCode] => M-CL 
      [ExternalDocNo] => DRDOC-DJ-GBAR10-25 
      [Item] => S160373 
      [Quantity] => 4 
      [Remark2] => TEST4 
     ) 

    [4] => Array 
     (
      [DOCategory] => IM 
      [ToCustomerCode] => M-CRG 
      [ExternalDocNo] => DRDOC-DJ-GBAR10-25 
      [Item] => S160373 
      [Quantity] => 4 
      [Remark2] => TEST5 
     ) 

    [5] => Array 
     (
      [DOCategory] => IM 
      [ToCustomerCode] => M-CRGM 
      [ExternalDocNo] => DRDOC-DJ-GBAR10-25 
      [Item] => S160373 
      [Quantity] => 4 
      [Remark2] => TEST6 
     ) 

    [6] => Array 
     (
      [DOCategory] => IM 
      [ToCustomerCode] => M-CRSB 
      [ExternalDocNo] => DRDOC-DJ-GBAR10-25 
      [Item] => S160373 
      [Quantity] => 4 
      [Remark2] => TEST7 
     ) 

) 

Aber jetzt möchte ich eine Sitzung hinzufügen. Also wird My Array das sehen.

[0] => Array 
     (
      [DOCategory] => IM 
      [ToCustomerCode] => M-CBC 
      [ExternalDocNo] => DRDOC-DJ-GBAR10-25 
      [Item] => S160373 
      [Quantity] => 4 
      [Remark2] => TEST 
      [session] => .... 
     ) 

Die [session] von diesem ist

$random = md5(uniqid($userlogin, true)); 
$new = array('session' => $random); 

Dann Hier ist, was ich versuche, so weit

$x=0; 
        while(($line = fgetcsv($f)) !== false) { 
         $data[] = $line; 
        } 
        for($x=0;$x<count($data);$x++){ 
         if($x != 0) { 
          $newArray[] = array_combine($data[0], $data[$x]); 
          $newArrays[] = $new; 
         } 
        } 
       $newArray = array_push($newArray,$newArrays); 
       echo "<pre>";print_r($newArray); 

und das Ergebnis von meinem echo "<pre>";print_r($newArray); ist 8. Wie kann ich erreichen, dass ich will? Vielen Dank im Voraus und Entschuldigung für mein schlechtes Englisch.

+1

Warum nicht einfach eine For- oder Foreach-Anweisung verwenden, um das Array zu durchlaufen und den Sitzungsschlüssel/-wert hinzuzufügen? – pteronewone

Antwort

1

Ihr Code ist seltsam, aber versuchen Sie dies:

$x=0; 
while(($line = fgetcsv($f)) !== false) { 
    $data[] = $line; 
} 
for($x=0;$x<count($data);$x++){ 
    if($x != 0) { 
     $newArray[] = array_combine($data[0], $data[$x]); 
     $newArray[$x]["session"] = $new; 
    } 
} 
echo "<pre>";print_r($newArray); 

können Sie auch das temporäre Array überspringen, wenn Sie es nicht brauchen:

$x=0; 
while(($line = fgetcsv($f)) !== false) { 
    $data[] = $line; 
} 
for($x=0;$x<count($data);$x++){ 
    if($x != 0) { 
     $data[$x]["session"] = $new; 
    } 
} 
echo "<pre>";print_r($data); 
+0

Ich brauche immer noch diesen Teil '$ newArray [] = array_combine ($ data [0], $ data [$ x]);' – YVS1102

+0

ok, also füge einfach das Array in der nächsten Zeile hinzu. '$ newArray [$ x] [" Sitzung "] = $ new;' – gbolo

+0

@ YVS1102 Bitte akzeptieren Sie die Antwort, wenn es für Sie funktioniert ... – gbolo

1

Sie verwenden diese Funktion

$arr1= array_merge($arr1, $arr2);

+0

It gime wie folgt '[6] => Array ( [DOCategory] => IM [ToCustomerCode] => M-CRSB [ExternalDocNo] => DRDOC-DJ-GBAR10-25 [Artikel] => S160373 [Quantity] => 4 [Remark2] => test7 ) [Sitzung] => e3ba1d241080830f2638be5a91debd69' – YVS1102

+0

Bitte sagen Sie deutlicher über das Problem, ich benutze mobile Web, so kann ich nicht klar sehen –

0

Schleife über das Array und fügen Sie einen Sitzungsindex

for($x=0;$x<count($data);$x++) 
    { 
    $newArrays[$x]['session'] = $new; 
    } 
+0

Ich antwortete dies zuerst :( – gbolo

0

Sie array_walk

Versuchen Sie, diese

array_walk($array, function(&$a) { 
    $a['session'] = md5(uniqid($userlogin, true)); 
}); 
0

Gebrauch verwenden können, verwenden können array_map() oder foreach oder array_walk, um den Sitzungsschlüssel hinzuzufügen und hinzuzufügen.

array_map(function($v){ 
    $v['session'] = md5(uniqid($userlogin, true)); 
    return $v; 
});