[GastForen Programmierung/Entwicklung PHP und MySQL Mehrdimensionales Array durchsuchen und Arraynummer ausgeben

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Mehrdimensionales Array durchsuchen und Arraynummer ausgeben

l1ck0r
Beiträge gesamt: 5

13. Mär 2008, 10:30
Beitrag # 1 von 9
Bewertung:
(13392 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, ich hab in einem mehrdimensionalem Array eine Zählervariable stehen.

Array (
[1] => Array (
[0] => produkt2
[1] => 90
)
[2] => Array (
[0] => produkt1
[1] => 45
)
[3] => Array (
[0] => produkt4
[1] => 25
)
[3] => Array (
[0] => produkt3
[1] => 15
)
)

Der erste Wert gibt den Namen des Produktes, der zweite die Anzahl der Klicks an (diese werden berechnet und stehen nicht als direkte Zahl in der DB). Das Array wurde von mir schon so sortiert, dass das Produkt mit der größten Anzahl an Klicks ganz vorne in dem Array auftaucht. Wenn ich nun das Array nach dem Produkt durchsuche bekomme ich als Ausgabe nur den Namen und die Klickanzahl. Aber was ich brauche ist, ist das Produkt, jenes, welches am häufigsten oder zweithäufigsten heruntergeladen wurde. Ich möchte also eine Platz für das Produkt vergeben. Dadurch wäre der Schlüssel des ersten Arrays + 1 die Platzierung des Produktes in der Topliste. Wie bekomme ich aber diese Nummer?
X

Mehrdimensionales Array durchsuchen und Arraynummer ausgeben

Pozor
Beiträge gesamt: 892

13. Mär 2008, 14:05
Beitrag # 2 von 9
Beitrag ID: #341501
Bewertung:
(13363 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

versuch es mal mit foreach()

Code
foreach($deinArray AS $key=>$value) 
{

}


nimmst Du dein Array so wie du es ausgegeben hast, ist im $key die Platzierung und im $value
das Array mit Produktname und Klicks enthalten.


Gruss Stefan


"KISS - KEEP IT SIMPLE, STUPID"
PHP Documentation Download


als Antwort auf: [#341428]

Mehrdimensionales Array durchsuchen und Arraynummer ausgeben

l1ck0r
Beiträge gesamt: 5

13. Mär 2008, 14:22
Beitrag # 3 von 9
Beitrag ID: #341505
Bewertung:
(13361 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das ist mein bisheriger Code. Allerdings bekomme ich dann halt nur die Werte die ich suche und ich suche ja deren Platzierung und die ist in der Ausgabe nicht enthalten. Bin wahrscheinlich MEGA-Blind und habe die Antwort so dicht vor der Nase, dass ich sie nicht sehe.

Code
function array_durchsuchen($array, $string)   
{
$enthalten_in = array();
foreach($array as $key1 => $value1)
{
foreach($value1 as $key2 => $value2)
{
if($value2 == $string)
{
$enthalten_in[]=$value2;
}
}
}
return $enthalten_in;
}



als Antwort auf: [#341501]

Mehrdimensionales Array durchsuchen und Arraynummer ausgeben

minou
Beiträge gesamt: 135

13. Mär 2008, 18:50
Beitrag # 4 von 9
Beitrag ID: #341601
Bewertung:
(13347 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

vielleicht hilft dir dabei "array_multisort" weiter. Hier kannst du Werte in mehreren Arrays sortieren, auch in mehrdimensionalen.
Ist nur so eine Idee, kannst ja mal nachschlagen in selfphp oder ähnlichem. Ich komme darauf, weil du Sortierflags benutzen kannst.

Gruss
minou


als Antwort auf: [#341505]

Mehrdimensionales Array durchsuchen und Arraynummer ausgeben

l1ck0r
Beiträge gesamt: 5

14. Mär 2008, 08:40
Beitrag # 5 von 9
Beitrag ID: #341627
Bewertung:
(13328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sortiert ist es ja, die Frage ist, wie bekomme ich die Platzierung wenn ich den Namen des Produktes in dem Array suche? Also gesucht ist x von dem Array wenn ich y gegeben habe und danach suche.

array[x][y]


als Antwort auf: [#341601]

Mehrdimensionales Array durchsuchen und Arraynummer ausgeben

oesi50
  
Beiträge gesamt: 2315

14. Mär 2008, 10:32
Beitrag # 6 von 9
Beitrag ID: #341649
Bewertung:
(13320 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
meinst du so was?
Code
<?php 
$arr = Array (
Array (
'produkt2',
90,
),
Array (
'produkt1',
45,
),
Array (
'produkt4',
25,
),
Array (
'produkt3',
15,
),
);


$such = "produkt3";

for ($z = 0; $z < 4; $z++){
if($arr[$z][0] === $such){
$ergebnis = $arr[$z];
break;
}
}

if( empty($ergebnis) ){
print 'nichts gefunden';
}
else{
print $ergebnis[1];
}

?>



Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#341627]

Mehrdimensionales Array durchsuchen und Arraynummer ausgeben

l1ck0r
Beiträge gesamt: 5

14. Mär 2008, 10:40
Beitrag # 7 von 9
Beitrag ID: #341652
Bewertung:
(13315 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du bist mein Held, und ich bin so blind. Habe das Array um $z entfernt, denn was ich brauchte war $z. !!!!!!DANKE!!!!!!
Code
<?php  
$arr = Array (
Array (
'produkt2',
90,
),
Array (
'produkt1',
45,
),
Array (
'produkt4',
25,
),
Array (
'produkt3',
15,
),
);


$such = "produkt3";

for ($z = 0; $z < 4; $z++){
if($arr[$z][0] === $such){
$ergebnis = $z;
break;
}
}

if( empty($ergebnis) ){
print 'nichts gefunden';
}
else{
print $ergebnis;
}

?>



als Antwort auf: [#341649]

Mehrdimensionales Array durchsuchen und Arraynummer ausgeben

oesi50
  
Beiträge gesamt: 2315

14. Mär 2008, 11:23
Beitrag # 8 von 9
Beitrag ID: #341664
Bewertung:
(13305 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
darf ich deine Euphorie etwas dämpfen?

du hast es doch nicht richtig verstanden.

empty($z)

wird bei deiner Lösung nie eintreten, ausser der erste Eintrag ist das Ergebnis.


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#341652]
(Dieser Beitrag wurde von oesi50 am 14. Mär 2008, 11:43 geändert)

Mehrdimensionales Array durchsuchen und Arraynummer ausgeben

l1ck0r
Beiträge gesamt: 5

14. Mär 2008, 12:05
Beitrag # 9 von 9
Beitrag ID: #341683
Bewertung:
(13287 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Den nix Fall kann ich aber rauslassen, da dieser nie Eintritt, da er vorher schon ausgesondert wird. Habe ihn also quasi damit schon erschlagen. Habe nur vergessen die Zeilen zu löschen ;)


als Antwort auf: [#341664]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
29.09.2022

IDUGS#85 Press2id

Zoom Meeting
Donnerstag, 29. Sept. 2022, 19.00 - 21.00 Uhr

Vortrag

Kennst du WordPress? Vielleicht. Verwendest du WordPress? Ja, klar! WordPress ist das am weitesten verbreitete System für die Erstellung von Webseiten. Um Webseitenbau soll es auf dieser IDUG aber nicht gehen. Gregor zeigt press2id (github.com/grefel/press2id). Seine Open-Source-Lösung für die Verbindung von Web und InDesign. Richtig gelesen: InDesign liest mithilfe von press2id die Inhalte der WordPress-Webseiten und generiert daraus Zeitschriften, Kataloge, Programmhefte oder Bierdeckel (das zeigen wir natürlich auch!). So wird die „Content First“ Theorie zu einer konkret anwendbaren Praxis, ohne gleich die ganz großen Räder zu drehen. Versprochen: Jeder kann nach der IDUG innerhalb kürzester Zeit Daten von WordPress nach InDesign importieren. Aber Achtung: Prinzipiell kann press2id aus jeder Website, oder besser Contentmanagementsystem (CMS) Daten auslesen und nach InDesign importieren! Spannend, oder? Danach geht es in die Praxis: Stefan hat die Webseite des Parktheater Iserlohn (parktheater-iserlohn.de) gestaltet. Die gedruckten Spielpläne (parktheater-iserlohn.de/interaktive-spielplaene) werden mit press2id realisiert. Wir schauen in den Maschinenraum und zeigen, wie die Lösung des Projekts realisiert wurde.

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

https://idugs85.eventbrite.de/

Von Wordpress nach InDesign
Veranstaltungen
08.11.2022

Frankfurt, Fraport Conference Center
Dienstag, 08. Nov. 2022, 13.30 - 18.00 Uhr

Seminar

Auf der Enfocus World Tour stellen wir Ihnen gemeinsam mit Enfocus die aktuellen Highlights von Enfocus Switch und dem Impressed Workflow Server (IWS) vor. Wir präsentieren Ihnen anhand typischer Aufgabenstellungen in einem modernen Produktionsbetrieb die Möglichkeiten, die Enfocus Switch für die Automatisierung und Standardisierung von Abläufen bietet. Wir haben sowohl für Produktionsverantwortliche als auch technisch Interessierte ein spannendes Programm vorbereitet, bei dem Sie sicherlich viel Neues erfahren werden, welches Sie in Ihrem eigenen Betrieb umsetzen können. Die Veranstaltung bietet darüber hinaus eine hervorragende Möglichkeit, sich mit anderen Anwendern und Workflow-Spezialisten auszutauschen und Antworten auf konkrete Aufgabenstellungen zu erhalten, welche Sie mit Hilfe von Enfocus Switch/IWS umsetzen möchten.

Wir sind jeweils an 2 Tagen in Frankfurt, Hamburg und München vor Ort. Der erste (halbe) Tag richtet sich in erster Linie an Betriebsleiter und Produktionsverantwortliche in Druckereien - ist also weniger technisch orientiert - sondern gibt einen Überblick zu den heutigen Möglichkeiten einer automatisierten Produktion.

Der zweite Tag (Switch Anwender-Treffen) richtet sich an bestehende Switch-Anwender und Administratoren.

Anmeldung und weitere Infos: https://www.impressed.de/schulung.php?c=sDetail&sid=310

Ja

Organisator: Enfocus/Impressed

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=310

Enfocus World Tour 2022