2017-02-02 2 views
0

Ich habe das Array erstellen wie Wie multidimentional Array unter Array mit PHP

Array ([id] => 1 [businessunit_id] => 1 [service_name] => dropbox [file_path] => /home/john/Desktop/GoogleDrive/alfresco_details.txt [attribute] => App key [value] => wlvii0k1bdm5lk8) 

Array ([id] => 1 [businessunit_id] => 1 [service_name] => dropbox [file_path] => /home/john/Desktop/GoogleDrive/alfresco_details.txt [attribute] => App secret [value] => eui9d7p62qvxt78) 

Array ([id] => 1 [businessunit_id] => 1 [service_name] => dropbox [file_path] => /home/john/Desktop/GoogleDrive/alfresco_details.txt [attribute] => Accesstoken [value] => IwSMaEYuDMAAAAAAAAAAC5jf8SyEXQUdf65xCrzFDbqrtlVyPQoJ7OBV1BRyHqqp) 

Array ([id] => 2 [businessunit_id] => 2 [service_name] => s3 [file_path] => /home/john/Desktop/GoogleDrive/alfresco_details.txt [attribute] => AWS_ACCESS_KEY_ID [value] => xxx) 

Array ([id] => 2 [businessunit_id] => 2 [service_name] => s3 [file_path] => /home/john/Desktop/GoogleDrive/alfresco_details.txt [attribute] => AWS_SECRET_ACCESS_KE [value] => xxxxxx) 

unter

gegeben Ich mag es, wie konvertieren unter

Array ([id] => 1 [businessunit_id] => 1 [service_name] => dropbox [file_path] => /home/john/Desktop/GoogleDrive/alfresco_details.txt array([App key] =>wlvii0k1bdm5lk8, [App secret] =>eui9d7p62qvxt78, [Accesstoken] =>IwSMaEYuDMAAAAAAAAAAC5jf8SyEXQUdf65xCrzFDbqrtlVyPQoJ7OBV1BRyHqqp)) 

Array ([id] => 2 [businessunit_id] => 2 [service_name] => s3 [file_path] => /home/john/Desktop/GoogleDrive/alfresco_details.txt array([AWS_ACCESS_KEY_ID] => xxx, [AWS_SECRET_ACCESS_KE] =>xxxxxx)) 

nicht in der Lage, das erwartete Ergebnis zu erhalten. könnten Sie jemand mir bitte meine PHP-Code

hier helfen:

while($row = $result->fetch_assoc()) { 

    $curid = $row['id']; 
    //$pastid = $curid; 

     echo '<pre>'; 
    //print_r($row); 

    if($i == 0){ 

     $newarray[$i]['id'] = $row['id']; 
     $newarray[$i]['businessunit_id'] = $row['businessunit_id']; 
     $newarray[$i]['file_path'] = $row['file_path']; 
     $newarray[$i]['service_name'] = $row['service_name']; 
     $newarray[$i][$row['attribute']] = $row['value']; 

    } else { 

     if($newarray[$i-1]['id'] == $curid){ 
      $newarray[$i-1][$row['attribute']] = $row['value']; 
      $newarray[$i]['id'] = $row['id'];   
     } else{ 
      $newarray[$i]['id'] = $row['id']; 
      $newarray[$i]['businessunit_id'] = $row['businessunit_id']; 
      $newarray[$i]['file_path'] = $row['file_path']; 
      $newarray[$i]['service_name'] = $row['service_name']; 
      $newarray[$i][$row['attribute']] = $row['value']; 
     } 
    } 
    $i++; 

} 
Grundsätzlich
+3

Bitte formatieren Sie Ihre Frage (verwenden Sie Code-Blöcke). Wo ist dein PHP-Code? –

+0

zeigen Sie Ihren Code +1 – dchayka

Antwort

0

, versucht man, die Arrays und kombinieren Sie die diff Ergebnisse mit der Schnittmenge der drei Arrays diff.

//untested code sample 
function reformatArrays($arrays) 
{ 
    $diff = []; 
    $a = reset($arrays); 
    $inter = []; 
    foreach($array as $k => $v) 
    { 
     $diff[] = array_diff($a, $v); 
     $inter = array_intersect($a, $v); 
     $a = $v; 
    } 
    return $inter + $diff; 
} 
0

versuchen diese, wobei $ Herkunft Ihrer aktuellen Array ist:

$result = array(); 
foreach($origin as $a) 
{ 
    if(!isset($result[$a['id']])) 
    { 
     $result[$a['id']] = array('id' => $a['id'], 'businessunit_id' => $a['businessunit_id'], 'service_name' => $a['service_name'], 'file_path' => $a['file_path']); 
    } 
    $result[$a['id']]['appvalues'][$a['attribute']] = $a['value']; 
} 
Verwandte Themen