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, 1656 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 ..
Ähnliche Inhalte
Batch & Shell
Bash Script soll neue Datei erzeugen (2)

Frage von SpeakerST zum Thema Batch & Shell ...

Netzwerkmanagement
gelöst Neue Cisco Switche im Netzwerk ermitteln um diese zu konfigurieren (9)

Frage von WinLiCLI zum Thema Netzwerkmanagement ...

Outlook & Mail
gelöst Anhang einer neuen Mail in eine andere neue Mail per Drag and Drop schieben (7)

Frage von slansky zum Thema Outlook & Mail ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(10)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

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

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...