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 (2) Themen-Optionen Thema bewerten
  2 links from elsewhere to this Post. Click to view. #1 (permalink)  
Alt 12-12-2006, 18:05
shihan
 Newbie
Links : Onlinestatus : shihan ist offline
Registriert seit: Jan 2004
Beiträge: 7
shihan ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Funktion] Funktion die ein kartesisches Produkt zwischen Arrays bildet

Hi,

ich möchte mehrere Arrays miteinander verknüpfen und sozusagen das kartesisches Produkt von Ihnen bilden.
Angenommen ich habe ein Array das wie folgt aussieht:
Code:
Array
(
    [0] => Array
        (
            [0] => x1
            [1] => x2
            [2] => x3
            [3] => x4
        )

    [1] => Array
        (
            [0] => y1
            [1] => y2
            [2] => y3
        )

    [2] => Array
        (
            [0] => z1
            [1] => z2
            [2] => z3
        )

)
Jetzt möchte ich die werte so miteinander verknüpfen dass ich rausbekomme:
Code:
x1y1z1
x1y1z2
x1y1z3
x1y2z1
x1y2z2
x1y2z3
[...]
x2y1z1
x2y1z2
[...]
x3y1z1
x3y1z2
[...]
Jetzt liegt es nahe zu sagen, ach 3 Arrays, na dann mach halt drei while Schleifen, durchlauf die Arrays bzw Tupel nacheinander und generier das eben.
Ich möchte aber dass ich beliebig viele Arrays (Tupel) haben kann...

Ich denke mal das geht am besten per Rekursion, aber wie? Tüftel jetzt schon seit heut morgen daran, und komm leider zu keiner Lösung...

Vielen Dank schonmal für jede Antwort.

Grüße

Dommi
Mit Zitat antworten
  #2 (permalink)  
Alt 12-12-2006, 18:11
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
ach 3 Arrays, na dann mach halt drei while Schleifen, durchlauf die Arrays bzw Tupel nacheinander und generier das eben.
Und bei x arrays benutzt du halt x while-schleifen. Die anzahl herauszufinden dürfte ja nicht schwer fallen
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich kann und werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Mit Zitat antworten
  #3 (permalink)  
Alt 12-12-2006, 23:20
shihan
 Newbie
Links : Onlinestatus : shihan ist offline
Registriert seit: Jan 2004
Beiträge: 7
shihan ist zur Zeit noch ein unbeschriebenes Blatt
Standard

aber ich weiss doch net vorher wieviele werte ich hab. wenn ich x while schleifen mache, bin ich ja auf diese begrenzt... wenn jetzt ich jetzt mehr als x elemente habe, funktionierts ja nicht mehr.
Mit Zitat antworten
  #4 (permalink)  
Alt 12-12-2006, 23:25
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von shihan
aber ich weiss doch net vorher wieviele werte ich hab. wenn ich x while schleifen mache, bin ich ja auf diese begrenzt...
du hast doch ein array von arrays - richtig?!
über $x=count($master_array) hast du ein dynamisches $x.
Mit Zitat antworten
  #5 (permalink)  
Alt 12-12-2006, 23:32
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

shihan: wozu braucht man das denn?
Mit Zitat antworten
  #6 (permalink)  
Alt 13-12-2006, 10:07
closure
 Master
Links : Onlinestatus : closure ist offline
Registriert seit: Mar 2006
Beiträge: 796
closure ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

auf die schnelle...

PHP-Code:
<?php

$test 
= array(
      array(
'x1','x2','x3','x4'),
      array(
'y1','y2','y3'),
      array(
'z1','z2','z3')
    );

function 
cartesian_helper($sofar,$arr,$pos,$max,&$collector){
      for(
$i 0$i count($arr[$pos]);$i++){
         if(
$pos == $max)
             
$collector[] = $sofar.$arr[$pos][$i];
         else
              
cartesian_helper($sofar.$arr[$pos][$i],$arr,$pos+1,$max,$collector);
      }
}

function 
cartesian($arr){
    
$bucket = array();
    
cartesian_helper('',$arr,0,count($arr)-1,$bucket);
    return 
$bucket;
}

print_r(cartesian($test));

?>
Ausgabe:
Code:
Array
(
    [0] => x1y1z1
    [1] => x1y1z2
    [2] => x1y1z3
    [3] => x1y2z1
    [4] => x1y2z2
    [5] => x1y2z3
    [6] => x1y3z1
    [7] => x1y3z2
    [8] => x1y3z3
    [9] => x2y1z1
    [10] => x2y1z2
    [11] => x2y1z3
    [12] => x2y2z1
    [13] => x2y2z2
    [14] => x2y2z3
    [15] => x2y3z1
    [16] => x2y3z2
    [17] => x2y3z3
    [18] => x3y1z1
    [19] => x3y1z2
    [20] => x3y1z3
    [21] => x3y2z1
    [22] => x3y2z2
    [23] => x3y2z3
    [24] => x3y3z1
    [25] => x3y3z2
    [26] => x3y3z3
    [27] => x4y1z1
    [28] => x4y1z2
    [29] => x4y1z3
    [30] => x4y2z1
    [31] => x4y2z2
    [32] => x4y2z3
    [33] => x4y3z1
    [34] => x4y3z2
    [35] => x4y3z3
)
__________________
(((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")
Mit Zitat antworten
Antwort

Lesezeichen


LinkBacks (?)
LinkBack to this Thread: https://www.php-resource.de/forum/php-developer-forum/79158-funktion-funktion-die-ein-kartesisches-produkt-zwischen-arrays-bildet.html
Erstellt von For Type Datum
Kreuzprodukt (Matrix?) eines mehrdimensionalen Arrays | tutorials.de - User helfen Usern This thread Refback 18-05-2014 09:22
Kreuzprodukt (Matrix?) eines mehrdimensionalen Arrays @ PHP - tutorials.de: Tutorial, Forum, Anleitung & Hilfe This thread Refback 14-02-2013 12:17

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

Vorteile eines flexiblen ERP Systems
Vorteile eines flexiblen ERP SystemsEin flexibles ERP System bietet in allen Unternehmensbereichen die Grundlage für eine erfolgreiche Verwaltung, Organisation und Planung aller Prozesse.

01.12.2021 | Berni

Software für alle Arten von digitalen Marktplätzen
Software für alle Arten von digitalen MarktplätzenDigitale Marktplätze sind nicht nur im B2C Geschäft seit Jahren etabliert, sondern erfreuen sich mit Kleinanzeigen-Märkten auf lokaler und regionaler Ebene auch im privaten Bereich wachsender Beliebtheit.

09.11.2021 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

09.11.2021 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Newsletter Script SuperWebMailer ansehen PHP Newsletter Script SuperWebMailer

Die webbasierte PHP Newsletter Software SuperWebMailer ist die optimale Lösung zur Durchführung eines erfolgreichen E-Mail-Marketings. Zur Nutzung des PHP Script-Pakets ist eine eigene Webpräsenz/Server mit PHP 5 oder neuer, MySQL 4 oder neuer und die

28.10.2021 mirko_swm | Kategorie: PHP/ Mail
Guestbook Light ansehen Guestbook Light

Das Guestbook Light (kurz: "Gblight") ist ein kinderleichtes Gästebuch in PHP. Durch den Einsatz einer SQLite Datenbank ist es einfach, leicht portabel und schnell. Aufgrund moderner Techniken erfüllt Gblight auch die neuesten Webstandards.

28.10.2021 scripthostingnet | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:42 Uhr.