php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 28-10-2005, 16:28
Hypersim
 Newbie
Links : Onlinestatus : Hypersim ist offline
Registriert seit: Oct 2005
Beiträge: 6
Hypersim ist zur Zeit noch ein unbeschriebenes Blatt
Standard Mehrdimensionales Array implodieren

Hallo,


ich habe ein kleines Problem mit dem Zusammenführen eines mehrdimensionalen Arrays.
Ich habe folgenden Code geschrieben, mit dem es so halbwegs funzt:

PHP-Code:
<?php
$spielfeld 
= array(array());

$spielfeld[0][0] = "00";
$spielfeld[1][0] = "10";
$spielfeld[2][0] = "20";
$spielfeld[0][1] = "01";
$spielfeld[1][1] = "11";
$spielfeld[2][1] = "21";
$spielfeld[0][2] = "02";
$spielfeld[1][2] = "12";
$spielfeld[2][3] = "23";

// Gewünschte Ausgabe: 00,10,20;01,11,21;02,12,23

for ($i=0;$i<3;$i++){
    
$zeile.= implode(",",$spielfeld[$i]).";";
}
echo (
$zeile);
?>
Nun erscheint es mir als sehr umständlich, extra eine for-Schleife zu schreiben. Gibts da keine elegantere und vor allem performantere Lösung??

Vielen Dank,
Sebastian
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 28-10-2005, 16:30
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

foreach?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #3 (permalink)  
Alt 28-10-2005, 16:33
Hypersim
 Newbie
Links : Onlinestatus : Hypersim ist offline
Registriert seit: Oct 2005
Beiträge: 6
Hypersim ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dachte, foreach wäre eher für assoziative Arrays, nicht für numerische. Und wenn, wie würdest Du es programmieren?
Bin noch nicht so der PHP-Crack, erst recht nicht mit Multi-Arrays

Zitat:
Original geschrieben von mrhappiness
foreach?
Mit Zitat antworten
  #4 (permalink)  
Alt 28-10-2005, 16:35
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

PHP-Code:
foreach ($spielfeld as $spielfeld_i)
  
$zeile .= implode(",",$spielfeld_i).";"
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #5 (permalink)  
Alt 28-10-2005, 16:41
Hypersim
 Newbie
Links : Onlinestatus : Hypersim ist offline
Registriert seit: Oct 2005
Beiträge: 6
Hypersim ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hehe, das funzt ja schon gut

Danke, aber ich hatte eher an etwas rekursives wie
PHP-Code:
$zeile implode(",",implode(";",$spielfeld)); 
gedacht. Das geht wohl nicht?


Zitat:
Original geschrieben von mrhappiness
PHP-Code:
foreach ($spielfeld as $spielfeld_i)
  
$zeile .= implode(",",$spielfeld_i).";"
Mit Zitat antworten
  #6 (permalink)  
Alt 28-10-2005, 16:42
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Warum?

P.S. TOFU ist doof
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #7 (permalink)  
Alt 28-10-2005, 17:57
Hypersim
 Newbie
Links : Onlinestatus : Hypersim ist offline
Registriert seit: Oct 2005
Beiträge: 6
Hypersim ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hm, gute frage,

in erster linie, weil es mir eleganter und performanter erscheint. ich versuche immer, meinen code soweit es geht zu optimieren.

<< immer auf der suche nach dem perfekten code
Mit Zitat antworten
  #8 (permalink)  
Alt 28-10-2005, 20:19
firstlord18
 Member
Links : Onlinestatus : firstlord18 ist offline
Registriert seit: Nov 2004
Ort: Germany
Beiträge: 310
firstlord18 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

schreib dir ne funktion, an die ein array übergebn wird.
dann durchläufst du mir foreach dieses array. checke ab, ob das unterarray wieder ein array ist, falls ja, dann übergibts du das wieder an deine funktion. dann wird dieses wieder gecheckt und falls es wieder ein multi-array ist, wird es wieder an deine funktion übergeben. das geht dann so weiter ...
falls es ein eindimensionales array ist, dann nimmste einfach implode() ...
am ende noch en return $neuarray oder sowas! wär doch für dich gut oder?
Mit Zitat antworten
  #9 (permalink)  
Alt 28-10-2005, 20:28
firstlord18
 Member
Links : Onlinestatus : firstlord18 ist offline
Registriert seit: Nov 2004
Ort: Germany
Beiträge: 310
firstlord18 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

naja, habe das mal versucht. ich hoffe, es geht:

PHP-Code:
<?php
function implode_multi($multi) {
    static 
$neu;
    if(
is_array($multi)) {
        
$i 0;
        foreach(
$multi as $key=>$var) {
            if(
is_array($var)) {
                
$multi[] = implode_multi($var);
            }
            else {
                if(
$i == (count($multi) - 1))
                    
$neu[] = $var.";";
                else
                    
$neu[] = $var.",";
            }
            
$i++;
        }    
    }

    
$zeile substr(implode(""$neu), 0, -1);
    return 
$zeile;
}

$spielfeld = array(array());

$spielfeld[0][0] = "00";
$spielfeld[1][0] = "10";
$spielfeld[2][0] = "20";
$spielfeld[0][1] = "01";
$spielfeld[1][1] = "11";
$spielfeld[2][1] = "21";
$spielfeld[0][2] = "02";
$spielfeld[1][2] = "12";
$spielfeld[2][3] = "23";

echo 
implode_multi($spielfeld);

Edit: jepp, funzt. Hbae es wie folgt getestet:

PHP-Code:
$spielfeld = array(array());

$spielfeld[0][0][0] = "0";
$spielfeld[0][0][1] = "1";
$spielfeld[0][0][2] = "2";
$spielfeld[0][1][0] = "3";
$spielfeld[0][1][1] = "4";
$spielfeld[0][1][2] = "5";
$spielfeld[1][0] = "6";
$spielfeld[2][0] = "7";
$spielfeld[2][0][1] = "8";
$spielfeld[2][0][2] = "9";
$spielfeld[2][1][0] = "10";
$spielfeld[2][1][2] = "11";
$spielfeld[3][0] = "12";
$spielfeld[3][1] = "13";
$spielfeld[3][2] = "14";

echo 
implode_multi($spielfeld); 
Ausgabe war: 0,1,2;3,4,5;6;789,10,11;12,13,14

Geändert von firstlord18 (28-10-2005 um 20:32 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 01-11-2005, 21:04
firstlord18
 Member
Links : Onlinestatus : firstlord18 ist offline
Registriert seit: Nov 2004
Ort: Germany
Beiträge: 310
firstlord18 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Threadersteller: ma getestet?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:43 Uhr.