Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> aus einem array doppelten eintrag löschen
Duergy
Geschrieben am: Do 8.03.2007, 09:05
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 17
Mitglied seit: 2.02.2007


Hallo ich habe folgendes array in der variabele $artikel
CODE
Array (3)
0 => Array (2)
 name => artikel1
 preis_mtl => 0.747899159663866
1 => Array (2)
 name => artikel2
 preis_mtl => 84.0336134453782
2 => Array (2)
 name => artikel1
 preis_mtl => 84.0336134453782


wenn wir genau hinschauen, ist artikel1 doppelt. wie bekomme ich den alten (also den oben) rausgelöscht?

Ich erkläre euch mal kurz wie ich zu dem array komme ich lese alle artikel (so ca 30stck) aus der datenbank aus. jetzt habe ich aber noch kunden die besondere preise, aber nicht bei allen artikeln, bekommen für die habe ich nochmal ein tabelle

das ganze sieht dann so aus

CODE
  $select = "SELECT artikelname, preis_mtl FROM artikel order by preis_mtl";
  $result = mysql_query($select);

  $artikel1 = array();
  while ($row = mysql_fetch_assoc($result))
  {
     array_push($artikel1, array(
        'name' => $row['artikelname'],
        'preis_mtl' => $row['preis_mtl']
        )
     );
  }
  $select2 = "SELECT artikelname, preis_mtl FROM kunden_artikel where knr=$g_knr order by preis_mtl";
  $result2 = mysql_query($select2);

  $artikel2 = array();
  while ($row2 = mysql_fetch_assoc($result2))
  {
     array_push($domains2, array(
        'name' => $row2['artikelname'],
        'preis_mtl' => $row2['preis_mtl']
        )
     );
  }


So somit wären beide ausgelesen


CODE

$artikel = array_merge($artikel1,$artikel2);


es gibt ja z.b. array_unique(); damit überschreibe ich aber das ganze array und nicht nur ein teil, wenn ich es anwende.

wäre schön wenn ich einen gedankenstoß bekommen würde

Danke
Top
PMEmail Poster
Top
 
 
SwiZZ
#2 Geschrieben am: Do 8.03.2007, 09:41 (+00:36)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 247
Mitglied seit: 8.11.2004


Hoi Duergy,

QUOTE
wenn wir genau hinschauen, ist artikel1 doppelt. wie bekomme ich den alten (also den oben) rausgelöscht?


ich würde das ganze mit associative arrays lösen. da $row['artikelname'] als key verwendet wird, bist du sicher das nur ein artikel1 in dein array vorkommt...

anstatt:
---------
array_push($artikel1, array(
'name' => $row['artikelname'],
'preis_mtl' => $row['preis_mtl']
)
);
----------
$artikel1[$row['artikelname']] => $row['preis_mtl'];

gruss
Steven


--------------------
"I said it was an upgrade. I didn't say it was better."
Top
PMUsers Website
Top
 
jAuer
Jürgen Auer - freiberufl. Programmierer
#3 Geschrieben am: Do 8.03.2007, 09:49 (+00:07)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 2432
Mitglied seit: 4.02.2006


Unterstützt das Db-System Unterabfragen und irgendetwas wie Case oder CoalEsce? Falls ja, geht das direkt mit einer Select-Abfrage (Code für den MS-SqlServer):

QUOTE
Select CoalEsce(B.artikelname, A.artikelname) As Artikelname,
CoalEsce(B.preis_mtl, A.preis_mtl) As preis_mtl
From artikel As A Left Join
(Select C.ArtikelId, C.artikelname, C.preis_mtl From kunden_artikel As C where C.knr=$g_kn) As B
On A.ArtikelId = B.ArtikelId


Was man mit Sql bereits zusammenschmeißen kann, sollte man dort sofort machen - nicht erst rausexportieren und dann müsamst zusammenpfriemeln.


--------------------
Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.

server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung.
Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - Ihre Datenbank funktioniert.
Top
PMEmail PosterUsers Website
Top
 
Duergy
#4 Geschrieben am: Do 8.03.2007, 09:53 (+00:04)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 17
Mitglied seit: 2.02.2007


hmm das verstehe ich jetzt nicht so ganz, ne andere möglichkeit wäre es natürlich (fällt mir gerade ein) zuerst das array vom kunden machen und das dann wiederum auszulesen und bei der sql abfrage diese dann auszuschließen zwar umständlich aber würde ja auch gehen oder?
Top
PMEmail Poster
Top
 
Duergy
#5 Geschrieben am: Do 8.03.2007, 09:56 (+00:03)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 17
Mitglied seit: 2.02.2007


QUOTE (jAuer @ Do 8.3.2007, 10:49)
Unterstützt das Db-System Unterabfragen und irgendetwas wie Case oder CoalEsce? Falls ja, geht das direkt mit einer Select-Abfrage (Code für den MS-SqlServer):

QUOTE
Select CoalEsce(B.artikelname, A.artikelname) As Artikelname,
CoalEsce(B.preis_mtl, A.preis_mtl) As preis_mtl
From artikel As A Left Join
(Select C.ArtikelId, C.artikelname, C.preis_mtl From kunden_artikel As C where C.knr=$g_kn) As B
On A.ArtikelId = B.ArtikelId


Was man mit Sql bereits zusammenschmeißen kann, sollte man dort sofort machen - nicht erst rausexportieren und dann müsamst zusammenpfriemeln.

joah stimmt das müsste gehen ich probiers mal danke schonmal
Top
PMEmail Poster
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/17157

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Google Sperre seit fast einem Jahr Freundin 313 19 So 30.11.2008, 23:25
Gate24 - Eintrag Sandro Feuillet 272 7 So 30.11.2008, 09:50
Mehrere Bildschirme an einem PC Seth.Gecko 2128 14 Mo 24.11.2008, 15:12
PHP: session_start() blockiert $_FILES-Array Guentor Netzor 124 1 Do 6.11.2008, 09:23
Eintrag in Verzeichnissen/Bookmarkdiensten ajse80 213 7 Mi 5.11.2008, 12:30
php Array Problem kekskruemel 154 5 Di 14.10.2008, 22:36
Kaufe Domains ab einem PR von 4 Wuppertal 480 15 Mi 1.10.2008, 22:11
Bitte um Kritik zu einem Projekt Julian Vieser 357 5 Di 30.09.2008, 20:10




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]