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, 15: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
  #2 (permalink)  
Alt 28-10-2005, 15: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, 15: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, 15: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, 15: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, 15: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, 16: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, 19: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, 19: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 19:32 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 01-11-2005, 20: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

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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Adsman Pro - Werbe-Manager V.1.1.0

Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebigem Format, Textanzeigen und Page-Peels mit umfangreichen Text und Flash-Effekte.

30.07.2019 rhs | Kategorie: PHP/ Bannerverwaltung
HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

30.07.2019 Berni | Kategorie: MYSQL/ Management
Top-Side.de Php Guest Book

Gästebuch mit Smilies, Ip Sperre und Spammschutz. Anzeige von Datum, Name, E-Mail, Homepage und Icq. Html ist deaktiviert.

26.07.2019 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:39 Uhr.