Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Problem mit multidimensionalem Array

Diskussion: Problem mit multidimensionalem Array im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Also, ich hab' hier aus 'ner MySQL Query ein multidimensionales Array das so aufgebaut ist: Code: Status | Anzahl ...

Antwort
Alt 05.03.06, 15:27   #1 (permalink)
Apo
 
Registriert seit: 02.05.04
Apo Leistung: Facit NTK
Apo eine Nachricht über ICQ schicken
Likes: 0
Standard Problem mit multidimensionalem Array

Anzeige

Also, ich hab' hier aus 'ner MySQL Query ein multidimensionales Array das so aufgebaut ist:

Code:
Status                | Anzahl
Complete              | 23
Complete, on DVD #1   | 43
Oneshot               | 3
Oneshot, on DVD #1    | 23
Jetzt moechte ich die verschiedenen Stati so zusammenfassen, dass Complete und Complete, on DVD #1 zu Complete werden und deren Anzahl (23 + 43) addiert wird...

erst wollte ich's ca so machen:

Code:
foreach($status['status'] as $statname)
 {
 if(strstr($statname,"[Oneshot]") { $status_added[Oneshot]=$status_added[Oneshot]+
Und da weiss ich nicht mehr weiter - wie finde ich die Anzahl raus, die zu dem Status gehoert?

Gruss, Apo
Apo ist offline   Mit Zitat antworten
Alt 05.03.06, 16:50   #2 (permalink)
Moderator
 
Registriert seit: 17.10.01
soox Leistung: Facit NTK
Likes: 0
Standard

suchst du sowas?

PHP-Code:
<?php
$datenArray 
= array();
$datenArray[] = array( 'name' => 'gruppe1''count' => 1);
$datenArray[] = array( 'name' => 'gruppe1 aa''count' => 1);
$datenArray[] = array( 'name' => 'gruppe1 bb''count' => 1);
$datenArray[] = array( 'name' => 'gruppe1 ccc''count' => 1);
$datenArray[] = array( 'name' => 'gruppe2''count' => 1);
$datenArray[] = array( 'name' => 'gruppe3''count' => 1);
$datenArray[] = array( 'name' => 'gruppe3 iii''count' => 1);
$datenArray[] = array( 'name' => 'gruppe3 jjjjjj''count' => 1);
$datenArray[] = array( 'name' => 'gruppe3 k''count' => 1);


$searchPattern "*******"//muss einzigartig sein
$anzahlInArray count($datenArray);  //vorher berechnen ist schneller
$pointer = -1;

for (
$i=0$i $anzahlInArray$i++) {
    if (
substr($datenArray[$i]['name'], 0strlen($searchPattern)) == $searchPattern) {
        
$datenArray[$pointer]['count'] = $datenArray[$pointer]['count'] + $datenArray[$i]['count'];
    } else {
        
$searchPattern $datenArray[$i]['name'];
        
$pointer $i;
    }
}


foreach (
$datenArray AS $entry) {
    echo 
$entry['name'].'('.$entry['count'].')'."\n";
}
?>
ausgabe:
Code:
gruppe1(4)
gruppe1 aa(1)
gruppe1 bb(1)
gruppe1 ccc(1)
gruppe2(1)
gruppe3(4)
gruppe3 iii(1)
gruppe3 jjjjjj(1)
gruppe3 k(1)
soox ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 05.03.06, 17:05   #3 (permalink)
Apo
Themenstarter
 
Registriert seit: 02.05.04
Apo Leistung: Facit NTK
Apo eine Nachricht über ICQ schicken
Likes: 0
Standard

Ja, so aehnlich... es sollte halt nur
Code:
gruppe1 (4)
gruppe2 (1)
gruppe3 (4)
ausgeben...
Was muesste ich da noch aendern?
Apo ist offline   Mit Zitat antworten
Alt 05.03.06, 20:24   #4 (permalink)
Moderator
 
Registriert seit: 17.10.01
soox Leistung: Facit NTK
Likes: 0
Standard

PHP-Code:
<?php
$datenArray 
= array();
$datenArray[] = array( 'name' => 'gruppe1''count' => 1);
$datenArray[] = array( 'name' => 'gruppe1 aa''count' => 1);
$datenArray[] = array( 'name' => 'gruppe1 bb''count' => 1);
$datenArray[] = array( 'name' => 'gruppe1 ccc''count' => 1);
$datenArray[] = array( 'name' => 'gruppe2''count' => 1);
$datenArray[] = array( 'name' => 'gruppe3''count' => 1);
$datenArray[] = array( 'name' => 'gruppe3 iii''count' => 1);
$datenArray[] = array( 'name' => 'gruppe3 jjjjjj''count' => 5);
$datenArray[] = array( 'name' => 'gruppe3 k''count' => 1);

$newData = array();

$searchPattern "*******"//muss einzigartig sein
$anzahlInArray count($datenArray);  //vorher berechnen ist schneller
$curMainEntry = array();

for (
$i=0$i $anzahlInArray$i++) {
    if (
substr($datenArray[$i]['name'], 0strlen($searchPattern)) == $searchPattern) {
        
$curMainEntry['count'] += $datenArray[$i]['count'];
    } else {
        
$searchPattern $datenArray[$i]['name'];
        
$newData[] = $curMainEntry;
        
$curMainEntry $datenArray[$i];
    }
}
$newData[] = $curMainEntry;
unset(
$curMainEntry); unset($anzahlInArray); unset($searchPattern); unset($newData[0]);


foreach (
$newData AS $entry) {
    echo 
$entry['name'].'('.$entry['count'].')'."\n";
}

?>
Ausgabe:
Code:
gruppe1(4)
gruppe2(1)
gruppe3(8)
soox ist offline   Mit Zitat antworten
Alt 06.03.06, 01:05   #5 (permalink)
Apo
Themenstarter
 
Registriert seit: 02.05.04
Apo Leistung: Facit NTK
Apo eine Nachricht über ICQ schicken
Likes: 0
Standard

Hm... mit meinem Array klappt das leider nicht :/
Code:
SELECT other AS name, count(other) AS count  from `manga` GROUP BY other;"
Das ist die SQL Anfrage die ich mach, um das Array zu bekommen... Kann ich die so aendern, dass der Code passt, bzw was muss ich am Code aendern?
Apo ist offline   Mit Zitat antworten
Alt 06.03.06, 11:48   #6 (permalink)
Moderator
 
Registriert seit: 17.10.01
soox Leistung: Facit NTK
Likes: 0
Standard

hmmm....kannst du mal dein array mit den 'name'/'count' eintraegen posten?

am besten die ausgabe von ( und in einem [ code] block)
PHP-Code:
echo serialize($datenArray); 
soox ist offline   Mit Zitat antworten
Alt 06.03.06, 15:20   #7 (permalink)
Apo
Themenstarter
 
Registriert seit: 02.05.04
Apo Leistung: Facit NTK
Apo eine Nachricht über ICQ schicken
Likes: 0
Standard

Code:
a:4:{i:0;s:10:"[Complete]";s:6:"status";s:10:"[Complete]";i:1;s:2:"26";s:6:"anzahl";s:2:"26";}
Apo ist offline   Mit Zitat antworten
Alt 18.03.06, 21:33   #8 (permalink)
Moderator
 
Registriert seit: 17.10.01
soox Leistung: Facit NTK
Likes: 0
Standard

das problem wurde im irc geloest. folgendes kam dabei raus (bis auf das, dass die daten von der db kommen):

PHP-Code:
<?php
$datenArray 
= array();
$datenArray[] = array( 'name' => '[gruppe1] a''count' => 1);
$datenArray[] = array( 'name' => '[gruppe1] aa''count' => 1);
$datenArray[] = array( 'name' => '[gruppe1] bb''count' => 1);
$datenArray[] = array( 'name' => '[gruppe1] ccc''count' => 1);
$datenArray[] = array( 'name' => '[gruppe2]''count' => 1);
$datenArray[] = array( 'name' => '[gruppe3]''count' => 1);
$datenArray[] = array( 'name' => '[gruppe3] iii''count' => 1);
$datenArray[] = array( 'name' => '[gruppe3] jjjjjj''count' => 5);
$datenArray[] = array( 'name' => '[gruppe3 test] k''count' => 1);

$newData = array();

$searchPattern "*******"//muss einzigartig sein
$anzahlInArray count($datenArray);  //vorher berechnen ist schneller
$curMainEntry = array();

for (
$i=0$i $anzahlInArray$i++) {
    if (
substr($datenArray[$i]['name'], 0strlen($searchPattern)) == $searchPattern) {
        
$curMainEntry['count'] += $datenArray[$i]['count'];
    } else {
        
ereg('\[[a-zA-Z0-9 ]*\]'$datenArray[$i]['name'], $tmpSearch);
        
$searchPattern $tmpSearch[0];
        
$newData[] = $curMainEntry;
        
$curMainEntry $datenArray[$i];
        
$curMainEntry['name'] = $searchPattern;
    }
}
$newData[] = $curMainEntry;
unset(
$curMainEntry); unset($anzahlInArray); unset($searchPattern); unset($newData[0]);


foreach (
$newData AS $entry) {
    echo 
$entry['name'].'('.$entry['count'].')'."\n";
}

?>
ausgabe:
Code:
[gruppe1](4)
[gruppe2](1)
[gruppe3](7)
[gruppe3 test](1)
soox ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Problem mit multidimensionalem Array
Themen-Optionen
Ansicht

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 sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php curl array string zu array parsen b4ck (Web-) Design und webbasierte Sprachen 5 12.12.07 17:11
Problem bei blacklist array 0wnZ (Web-) Design und webbasierte Sprachen 1 06.07.06 00:09
array in db abspeichern soox (Web-) Design und webbasierte Sprachen 1 07.07.04 11:45
C int array[n] zu x int ??? NeoN Code Kitchen 11 25.04.04 20:38
PHP -> Assoziatives array??? simb (Web-) Design und webbasierte Sprachen 2 17.03.02 22:49


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61