- Ad -
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! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 28-01-2005, 13:29
tolwin
 Junior Member
Links : Onlinestatus : tolwin ist offline
Registriert seit: Jun 2003
Beiträge: 117
tolwin ist zur Zeit noch ein unbeschriebenes Blatt
Standard mehrdimensionales hash array

Hallo Zusammen,
nachdem ich jetzt schon um Forum und Googel geschaut habe
aber nicht finden konnte, hätte ich eine Frage zu einem Array. Besteht die Möglichkeit ein mehrdimensionales Hash Array das wie folgt aussehen soll zu erstellen

PHP-Code:
$array[$cat_id][$path][$sort
Ich möchte alle 3 Variablen abrufen können.
Über Tipps und Lösungsansätze wäre ich dankebar!
Mit Zitat antworten
  #2 (permalink)  
Alt 28-01-2005, 13:53
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

antwort: ja
vorschlag: mach dir mal gedanken über die fragestellung
tipp: somit weist du den keys den variablenwert zu. ob es erwünscht ist, weiß ich nicht, kann es aber anzweifeln. vielleicht soll der variablenwert ja doch der wert (value) sein, der zu einem schlüsselnamen (key) gehört?
Mit Zitat antworten
  #3 (permalink)  
Alt 28-01-2005, 14:11
tolwin
 Junior Member
Links : Onlinestatus : tolwin ist offline
Registriert seit: Jun 2003
Beiträge: 117
tolwin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich benötige das Array um aus einem Textfile das mehrere Zeilen beinhaltet
über einen split 3 Werte zusammengehörende Werte in das Array zu laden.
Der erste Wert soll eine Kategorie ID sein. Diese ID soll mit anderen Daten
aus einer DB verglichen werden und jeweils dem Datensatz mit der gleich
Kategorie ID (mehrfach vorkommend) zugewiesen werden - damit der Inhalt des Arrays ausgegeben werden kann ($cat_id, $path und $sort)
Mir ist der Ansatz leider noch nicht ganz klar.....
Mit Zitat antworten
  #4 (permalink)  
Alt 28-01-2005, 14:16
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

du hast die idee mehrerer array-dimensionen nicht richtig verstanden.
es würde reichen, wenn dein array 2 (auch eine relative bezeichnung) dimensionen hätte:

PHP-Code:
$arr[0]['catid'] = 7//erste zeile
$arr[0]['path'] = "foo";
$arr[0]['sort'] = true;

$arr[1]['catid'] = 8//zweite zeile
$arr[1]['path'] = "bar";
$arr[1]['sort'] = false;

//etc. 
würde doch reichen, oder?
Mit Zitat antworten
  #5 (permalink)  
Alt 28-01-2005, 14:38
tolwin
 Junior Member
Links : Onlinestatus : tolwin ist offline
Registriert seit: Jun 2003
Beiträge: 117
tolwin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So ist es mir auch bekannt. Da ich aber das Array "foreach" Datensatz aus der DB nach der passenden cat_id durchsuchen möchte (die in der DB mehrfach vorkommt) und m.E. nur schlecht mit einem increment arbeiten
kann um das Array zu durchlaufen denke ich dass es so nicht funktionieren würde?!?! Aus diesem Grund wollte ich die cat_id als Key nutzen und diesem 2 Values zuweisen damit im Array gesucht werden kann. Vielleicht funktioniert das so garnicht... kein Ahnung
Mit Zitat antworten
  #6 (permalink)  
Alt 28-01-2005, 14: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

Du darfst an Stelle von [0] und [1] bitte [$catid] benutzen
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #7 (permalink)  
Alt 28-01-2005, 14:47
tolwin
 Junior Member
Links : Onlinestatus : tolwin ist offline
Registriert seit: Jun 2003
Beiträge: 117
tolwin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke!Das war meine erste Frage. Aber wie kann ich z.B. per echo
den "index" in diesem Fall $cat_id des Arrays ausgeben? Normalerweise
würde ich bei einem normalem Array diese per

PHP-Code:
$array[0
usw... machen

wenn ich aber versuche dieses array auszugeben
PHP-Code:
$array[$cat_id][$path][$sort]
und zwar mit dem Aufruf
echo $array[cat_id
gibt er mir nur $path und $sort aus.... ich möchte aber auch die $cat_id haben!
Mit Zitat antworten
  #8 (permalink)  
Alt 28-01-2005, 14:51
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

Was hält dich davon ab?
PHP-Code:
$arr[$catid]['catid'] = $catid//erste zeile
$arr[$catid]['path'] = "foo";
$arr[$catid]['sort'] = true
Ist doch nicht so schwer
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #9 (permalink)  
Alt 28-01-2005, 14:51
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

OffTopic:
deswegen dachte ich auch, dass es einfacher wäre, den index durchgehend nummeriert zu halten.
Mit Zitat antworten
  #10 (permalink)  
Alt 28-01-2005, 14:55
tolwin
 Junior Member
Links : Onlinestatus : tolwin ist offline
Registriert seit: Jun 2003
Beiträge: 117
tolwin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es ist wahrscheinlich ein Verständnisproblem auf meiner Seite....
wenn ich diese Array jetzt in einer Zeile ausdrücken würde,
dann hätte ich doch folgendes ....

[catid][catid][path][sort] oder???

Irgendwie will es mir nicht in den Kopf. Sorry für´s blöde nachfragen
Mit Zitat antworten
  #11 (permalink)  
Alt 28-01-2005, 15:00
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

versuch's aus. lege so ein array an und fülle es mit testdaten. dann siehst du durch print_r, wie es aufgebaut ist. verändern und schauen - klappt schon.
Mit Zitat antworten
  #12 (permalink)  
Alt 28-01-2005, 15:05
tolwin
 Junior Member
Links : Onlinestatus : tolwin ist offline
Registriert seit: Jun 2003
Beiträge: 117
tolwin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das habe ich jetzt mal versucht:
PHP-Code:
$file"muster2.csv";
$farray   =  file($file) or die("Fehler beim oeffnen der Datei muster2.csv)");
if(
$farray
{        
     foreach(
$farray as $line
    {
          list(
$cat_id$path$sort) = split(";"$line);
          
$filehash[$cat_id]['cat_id'] = $cat_id;
          
$filehash[$cat_id]['path']   = $path;
          
$filehash[$cat_id]['sort']   = $sort;
          echo 
"HashArray : "$filehash[$cat_id]."<br>";
     }

und raus kommt das:
"HashArray : Array"

Ich verstehs nicht
Mit Zitat antworten
  #13 (permalink)  
Alt 28-01-2005, 15:11
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

natürlich, ist ja auch ein array.
ersetze doch
PHP-Code:
echo "HashArray : "$filehash[$cat_id]."<br>"
durch
PHP-Code:
echo "HashArray : <pre>"print_r($filehash[$cat_id], true). "</pre><br>"
oder sowas.
Mit Zitat antworten
  #14 (permalink)  
Alt 28-01-2005, 15:30
tolwin
 Junior Member
Links : Onlinestatus : tolwin ist offline
Registriert seit: Jun 2003
Beiträge: 117
tolwin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke! Werde es ausprobieren.
Mit Zitat antworten
  #15 (permalink)  
Alt 31-01-2005, 16:41
tolwin
 Junior Member
Links : Onlinestatus : tolwin ist offline
Registriert seit: Jun 2003
Beiträge: 117
tolwin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Zusammen. Habe leider noch immer das Problem das Array zu
durchsuchen. Möchte den Inhalt einer Datenbank mit dem Inhalt des
Arrays vergleichen und die übereinstimmenden cat_id´s ausgeben.
Da ich bei dem im weiter vorher geposteten Array kein foreach nutzen
kann und andere Schleifen nicht zu funktionieren scheinen, bin ich im
Moment mit meinem knappen Programmierkenntnissen überfordert.
So sieht mein Quellcode aus... leider gibt er mir nur eine ID (immer die selbe) aus....
PHP-Code:
foreach($results as $result
{
    echo  
"<tr><td valign=\"top\" width=\"60\" style=\"font-size:11px;font_weight:bold;background-color:#FFFFFF\"><b>"  .$result->date_german.  "</b></td>";
       
    
$counti=0;        
    
    if (isset(
$filehash[$cat_id]))
    {
        echo 
$filehash[$cat_id]['cat_id']."<br>";
        
        if(
$filehash[$cat_id]['cat_id'] == $result->category_id
        {    
            echo 
"ich bin drin!";
            
$counti=1;
        }
    }
    elseif(
$counti == 0)    
    {
        echo  
"Ausgabe 1";
    }        
    
    echo  
"Ausgabe 2";

Vielen Dank für Eure Hilfe!
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

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

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