php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.04.2005, 16:13  
Erfahrener Benutzer
 
Registriert seit: 23.06.2004
Beiträge: 139
Heart zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Zwei mehrdimensionale arrays "verbinden"?

Hallo,

ich habe zwei mehrdimensionale Arrays....

Array 1:
Code:
array(13) {
  [0]=>
  array(2) {
    ["name"]=>
    string(12) "Martin Guido"
    ["gesamtminuten"]=>
    string(3) "270"
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(13) "Ritter Daniel"
    ["gesamtminuten"]=>
    string(3) "270"
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(12) "Thamm Holger"
    ["gesamtminuten"]=>
    string(3) "270"
  }
}
Array 2:
Code:
array(6) {
  [0]=>
  array(2) {
    ["name"]=>
    string(12) "Thamm Holger"
    ["gesamtminuten"]=>
    string(2) "35"
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(20) "Lutzenberger Michael"
    ["gesamtminuten"]=>
    string(2) "31"
  }
}
Wie kann ich diese zwei Arrays miteinander "verbinden", so dass einer daraus wird.

Ist ein Name vom 2. Array bereits im 1. Array enthalten (Bsp. "Thamm Holger") so sollen die gesamtminuten (35) zu den vorhandenen. im 1. Array (270) dazugezählt werden.

Ist ein Name vom 2. Array im 1. Array noch nicht enthalten, so soll dieser dem 1. Array hinzugefügt werden.

DANKE
Heart ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.04.2005, 16:21  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

PHP-Code:
<?php
function findIndex($array$key) {
  for (
$i 0$i count($array); $i++) if ($array[$i]['name'] == $key) return $i;
  return -
1;
}

function 
mergeA($array1$array2) {
  foreach (
$array2 as $child) {
    if ((
$index findIndex($array1$child['name'])) > -1$array1[$index]['gesamtminuten'] += $child['gesamtminuten'];
    else 
$array1[] = array('name' => $child['name'], 'gesamtminuten' => $child['gesamtminuten']);
  }
  
  return 
$array1;
}

?>
wenn die struktur der arrays identisch ist mit der oben angegebenen sollte das damit gehen. aufruf per mergeA($array1, $array2); und das ganze gibt ein zusammengefasstes array wieder. ungetestet, is klar.

mir war langweilig.
__________________
Was ist validität?
fantast ist offline  
Alt 19.04.2005, 16:42  
Erfahrener Benutzer
 
Registriert seit: 23.06.2004
Beiträge: 139
Heart zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Erstmal DANKE für die schnelle Antwort!!!!

Es scheint (noch) nicht zu funktionieren, oder ich mache was falsch.

Was ich gemacht habe und wie die Bsp-Arrays aussehen kannst Du hier sehen

http://phpfi.com/58542
Heart ist offline  
Alt 19.04.2005, 16:51  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

die funktion gibt dir ein array zurueck, welches die neuen werte enthaelt. du versuchst immernoch das alte auszugeben...
__________________
Was ist validität?
fantast ist offline  
Alt 19.04.2005, 17:01  
Erfahrener Benutzer
 
Registriert seit: 23.06.2004
Beiträge: 139
Heart zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Ich D***.... sorry!

Jetzt scheint es nur noch ein Problem zu geben, wenn der Name im 2. array schon im 1. array vorhanden war. Momentan wird im neuen dieser nicht addiert, sondern kommt einfach hinten als neuen Eintrag hinzu...

Siehe http://phpfi.com/58546
Heart ist offline  
Alt 19.04.2005, 17:03  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

oh tippfehler von mir. habs editiert...
__________________
Was ist validität?
fantast ist offline  
Alt 19.04.2005, 17:40  
Erfahrener Benutzer
 
Registriert seit: 23.06.2004
Beiträge: 139
Heart zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

DANKE DIR VIELMALS!!!!

Eine kleine Frage noch :wink:
Wie kann ich das (neue) array nach den gesamtminuten (absteigend) sortieren lassen?
Heart ist offline  
Alt 19.04.2005, 17:51  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

PHP-Code:
<?php
function cmp($a$b) {
  if (!
is_array($a) || !is_array($b)) return 0;
  return (
$a['gesamtminuten'] < $b['gesamtminuten'] ? : ($a['gesamtminuten'] > $b['gesamtminuten'] ? -0));
}

usort($deinArray'cmp');
?>
sollte tun. mann bin ich sozial heute
__________________
Was ist validität?
fantast ist offline  
Alt 19.04.2005, 18:06  
Erfahrener Benutzer
 
Registriert seit: 23.06.2004
Beiträge: 139
Heart zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Und wie es tut

...wenn Du ganz sozial wärst, dann könntest Du mir diese cmp-Funktion bitte etwas erläutern, damit ich nicht dumm sterben muss und auch daraus lerne :wink:
Heart ist offline  
Alt 19.04.2005, 18:08  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

hihi mein code is unlesbar

macht nichts weiter als zunaechst zu schaun, dass beide argumente arrays sind, und danach zu vergleichen bei welchem array die variable "gesamtminuten" groesser is und demensprechend 1en oder -1en zurueck zu geben.

www.php.net/usort hat mehr infos.
__________________
Was ist validität?
fantast ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mehrere Arrays summieren buggybugga PHP-Fortgeschrittene 8 22.07.2008 11:51
Mehrere Mehrdimensionale Arrays Stefano PHP Tipps 2006 5 12.10.2006 13:18
Arrays sortieren, Bezeichnung, Preis Ticos PHP Tipps 2006 4 07.09.2006 19:37
Arrays kreuzen PHP Tipps 2006 13 08.03.2006 11:36
[Erledigt] 2 Arrays miteinander vergleichen PHP Tipps 2007 3 17.12.2005 16:54
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
mehrdimensionale assoziative Arrays (Hash) PHP Tipps 2005 5 31.03.2005 13:52
mehrdimensionale Assoziative Arrays (Hash) PHP-Fortgeschrittene 6 31.03.2005 13:51
Mehrdimensionale Arrays mit Smarty duderino PHP-Fortgeschrittene 3 28.02.2005 17:47
Erkennung von Arrays in Strings PHP-Fortgeschrittene 15 07.12.2004 13:00
Mehrdimensionale Arrays sortieren Borlox PHP Tipps 2004 5 23.09.2004 14:52
2 arrays in abhängigkeit ??? PHP Tipps 2004 2 11.08.2004 21:19
[Erledigt] verflixte mehrdimensionale Arrays PHP Tipps 2004 4 05.08.2004 09:29
Werte eines Arrays in eine MySQL schreiben PHP Tipps 2004 2 28.06.2004 13:32
mehrdimensionale arrays in for-schleife PHP Tipps 2004 2 11.06.2004 16:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
array verbinden, arrays verbinden, zwei arrays verbinden, matlab array verbinden, matlab arrays verbinden, matlab matrix verbinden, php arrays verbinden, http://www.php.de/php-tipps-2005/21519-zwei-mehrdimensionale-arrays-verbinden.html, php array verbinden, matlab arrays verknüpfen, array verbinden php, arrays verbinden matlab, zwei array verbinden, matrix verbinden matlab, mehrdimensionale arrays verbinden php, matlab matrizen zusammenfügen, matlab arrays zusammenfügen, matlab matrizen verbinden, matlab 2 arrays verbinden, php mehrdimensionale arrays zusammenfügen

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.