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, 17: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, 17:11
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
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 werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 12-12-2006, 22: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, 22: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, 22: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, 09: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 08:22
Kreuzprodukt (Matrix?) eines mehrdimensionalen Arrays @ PHP - tutorials.de: Tutorial, Forum, Anleitung & Hilfe This thread Refback 14-02-2013 11: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

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

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

29.04.2021 mirko_swm | Kategorie: PHP/ Mail
OXID eShop

Mit OXID eshop bieten wir Ihnen eine modulare und skalierbare Internet Shopping Software mit einem hervorragenden Preis-/Leistungsverhältnis.

29.04.2021 eric.jankowfsky@ | Kategorie: PHP/ Shops
PHP-Login

Die Aufgabenstellung bestand darin, ein einfaches Login-Script zu erstellen, dass schnell und universell auf jeder Webseiten eingebaut werden kann. Der Schwerpunkt lag dabei auf der Entwicklung eines universell einsetzbarem Modul für den Login und zur

05.04.2021 Wallhalla | Kategorie: PHP/ Kundenverwaltung
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:14 Uhr.