Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Aus Arrays neue Arrays erzeugen!

Frage Entwicklung PHP

Mitglied: FunkerVogt

FunkerVogt (Level 1) - Jetzt verbinden

01.02.2014 um 12:42 Uhr, 1613 Aufrufe, 8 Kommentare

Hallo Gemeinde,

ich hoffe Ihr könnt mir bei meiner Problematik helfen und meinen kleinen gordischen Knoten im Kopf lösen.

Die Situation:
Ich habe eine undefinierte Anzahl Arrays $ZP mit einer undefinierten Anzahl von Elementen!

z.B.
Array ( [0] => A1 [1] => A2 [2] => A3 [3] => A4 )
Array ( [0] => B1 [1] => B2 [2] => B3 [3] => B4 )
.
.
Array ( [0] => K1 [1] => K2 [2] => K3 [3] => K4 )

die Ausgabe erzeuge ich mit folgendem Code:
$arr = sind die genannten Arrays

01.
for ($k =0; $k < count($arr); $k++) 
02.
03.
        print_r ($arr[$k]); 
04.
        echo "</br>"; 
05.
    }
Was ich möchte ist, dass die Arraywerte ausgelesen und in neuen Arrays anders sortiert ausgegeben werden:
Ziel:

Array ( [0] => A1 [1] => B1 [2] => K1 )
Array ( [0] => A2 [1] => B2 [2] => K2 )
Array ( [0] => A3 [1] => B3 [2] => K3 )
Array ( [0] => A4 [1] => B4 [2] => K4 )



Danke im voraus!



Gruss

Uwe
Mitglied: colinardo
LÖSUNG 01.02.2014, aktualisiert 02.02.2014
Hallo Uwe,
Beispiel:
01.
$arr = array(array("A1","A2","A3","A4"),array("B1","B2","B3","B4"),array("K1","K2","K3","K4")); 
02.
$new_arr = array(); 
03.
foreach ($arr as $key => $subarr) { 
04.
	foreach ($subarr as $subkey => $subvalue) { 
05.
		$new_arr[$subkey][$key] = $subvalue
06.
07.
08.
print_r($new_arr);
Grüße Uwe
Bitte warten ..
Mitglied: FunkerVogt
01.02.2014 um 14:43 Uhr
Danke Euch beide... Eure Vorschläge beziehen sich doch multidimensionale Arrays?!?!?!?
hab ich ja nicht.

Muss erst einmal bissl rumprobieren wie ich das in meinem Fall hinbekomme!
Bitte warten ..
Mitglied: colinardo
01.02.2014, aktualisiert um 15:01 Uhr
Zitat von FunkerVogt:
Eure Vorschläge beziehen sich doch multidimensionale Arrays?!?!?!?
hab ich ja nicht.
dann beschreibe deine Situation bitte genauer.:
Ich habe eine undefinierte Anzahl Arrays $ZP mit einer undefinierten Anzahl von Elementen!
worin oder wie sind diese definiert ?
Das Vorgehen ist aber immer ähnlich mit zwei verschachtelte Schleifen.
Bitte warten ..
Mitglied: Guenni
LÖSUNG 01.02.2014, aktualisiert 02.02.2014
Zitat von FunkerVogt:

Danke Euch beide... Eure Vorschläge beziehen sich doch multidimensionale Arrays?!?!?!?
hab ich ja nicht.

Muss erst einmal bissl rumprobieren wie ich das in meinem Fall hinbekomme!

Hi FunkerVogt,

wenn $arr deine Arrays sind, die du mit deinem Code ausgibst, dann hast du doch ein multidimensionales Array,

und somit ist die Definition von colinardo . . .

01.
$arr = array(array("A1","A2","A3","A4"),array("B1","B2","B3","B4"),array("K1","K2","K3","K4"));
. . . ja wohl richtig. Du müsstest, anstatt mit print_r($new_arr) das gesamte Array auszugeben, die einzelnen Arrays aus $new_arr ausgeben.

01.
$new_arr = array(); 
02.
foreach ($arr as $key => $subarr) { 
03.
	foreach ($subarr as $subkey => $subvalue) { 
04.
		$new_arr[$subkey][$key] = $subvalue
05.
06.
07.
foreach($new_arr as $arr){ 
08.
 print_r($arr);echo "<br>"
09.
}
Ergebnis:

Array ( [0] => A1 [1] => B1 [2] => K1 )
Array ( [0] => A2 [1] => B2 [2] => K2 )
Array ( [0] => A3 [1] => B3 [2] => K3 )
Array ( [0] => A4 [1] => B4 [2] => K4 )

Was dann wohl deinem Wunschergebnis (siehe oben) entspricht.

Gruss
Günni
Bitte warten ..
Mitglied: FunkerVogt
01.02.2014, aktualisiert um 20:30 Uhr
mnjaaa! Also:
Grundgerüst ist:
Ich rufe innerhalb einer Schleife $ZP ($ZP kann zwischen 1 und 15 liegen) eine SQL Abfrage
auf, die mir Werte aus der Datenbank liefert, welche zwischen (per $_GET übermittelte) 2 Datumsangaben liegen.
In diesem Sinne ist $ZP und auch die Anzahl der Werte in der Anzahl nicht genau definiert!

Innerhalb dieser Schleife ($ZP 1 bis X) weise ich die Werte aus der DB einem jeweilig zu $ZP gehöriges Array zu.
Ich habe also kein mehrdimensionales Array sondern X Arrays mit den Werten aus der DB.

also BEISPIELSWEISE:

$ZP1 = Array ( [0] => A1 [1] => A2 [2] => A3 [3] => A4 )
$ZP2 = Array ( [0] => B1 [1] => B2 [2] => B3 [3] => B4 )
.
.
$ZP5 = Array ( [0] => K1 [1] => K2 [2] => K3 [3] => K4 )

deswegen ist das ja so "tricky"!
Bitte warten ..
Mitglied: colinardo
LÖSUNG 01.02.2014, aktualisiert 02.02.2014
Zitat von FunkerVogt:
Ich habe also kein mehrdimensionales Array sondern X Arrays mit den Werten aus der DB.
für mich hört sich das nach einer umständlichen Lösung an.
Zur Info, deine Arrays kannst du ganz einfach in deiner Schleife einem neuen Array mit array_push() hinzufügen und dieses dann zum Schluss mit der obigen Transpose-Methode behandeln und wenn du es brauchst auch wieder zurückwandeln (siehe Günni), bzw. wieder deinen hart gecodeten Arrays zuweisen.
Ich sehe da kein Problem, sorry.

Grüße Uwe
Bitte warten ..
Mitglied: FunkerVogt
02.02.2014 um 13:52 Uhr
Supi! Jetzt funktioniert es!

Das ich auf X Arrays statt auf Mehrdimensionale Arrays gesetzt habe, lag daran,
dass ich es leichter fand die Arrays später mit Schleifen neu zu sortieren.
Da kannte ich aber diese Methode noch nicht!


Ich danke Euch vielmals für Eure Hilfe


Gruss

Uwe


*gelöst'
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Bash Script soll neue Datei erzeugen (2)

Frage von SpeakerST zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell: Spalten tauschen und neue Spalten in CSV datei erzeugen (17)

Frage von Rippchen zum Thema Batch & Shell ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Server-Hardware
gelöst Neue Serverfestplatten (13)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (29)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...