ebiz-consult PHP Entwicklung
- 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 27-01-2010, 09:52
Dirk-Kiel
 Registrierter Benutzer
Links : Onlinestatus : Dirk-Kiel ist offline
Registriert seit: Feb 2003
Beiträge: 41
Dirk-Kiel ist zur Zeit noch ein unbeschriebenes Blatt
Standard Zufallswiedergabe eines 1 Dim Arrays

Moin moin,

als kleines Snippet bräuchte ich eine Zufallswiedergabe eines Arrays,
in welchem 4 Strings enthalten sind, aber immer nur 2 zur Anzeige kommen.
Diese 2 sollten nicht doppelt und eben bei jedem Reload der Seite
unterschiedlich sein.
Dazu habe ich bereits angefangen, das haut aber nicht hin. Ich bekomme nicht
den String "Text1" etc. als Ausgabe.
Wer mag mir dabei helfen und mich in die Richtung stupsen?
PHP-Code:
<?php

$array 
= array("Text1""Text2""Text3""Text4");

array_rand($array2);

// var_dump($array);  

foreach($array as $key => $elem){
        echo 
$elem."<br />";
}

?>
Danke im vorraus für Konstruktives.

Gruß
Mit Zitat antworten
  #2 (permalink)  
Alt 27-01-2010, 12:10
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

zuerst mal solltest du dir im Handbuch durchlesen, wie array_rand funktioniert und vor allem was es zurück gibt. Beispiele sind ja dort auch dabei, zum besseren Verständnis.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 27-01-2010, 12:36
dhcomputer
 Registrierter Benutzer
Links : Onlinestatus : dhcomputer ist offline
Registriert seit: Aug 2003
Beiträge: 17
dhcomputer ist zur Zeit noch ein unbeschriebenes Blatt
dhcomputer eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Dirk-Kiel Beitrag anzeigen
Diese 2 sollten nicht doppelt und eben bei jedem Reload der Seite unterschiedlich sein.
also wenn es bei jeden Reload der Seite unterschiedlich sein sollte, dann wirst du per Zufall gar nichts erreichen können.

Dann muss es ja ein Gedächnis geben in Form von einem Sessioneintrag oder aus der Datenbank geholt werden.

Ist mit Reload der einzelne Benutzer gemeint oder generell?

Beispiel:

User 1 sieht 1 und 2
User 2 sieht 3 und 4

Nach einem Reload dann

User 1 sieht 3 und 4
User 2 sieht 1 und 2

??

Oder habe ich da jetzt einen Denkfehler?
__________________
Professionelle und innovative Programmierung
Mit Zitat antworten
  #4 (permalink)  
Alt 27-01-2010, 17:20
Dirk-Kiel
 Registrierter Benutzer
Links : Onlinestatus : Dirk-Kiel ist offline
Registriert seit: Feb 2003
Beiträge: 41
Dirk-Kiel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

falsch ausgedrückt.
Natürlich können die Strings mehrmals kommen, nur nicht gleichzeitig
doppelt :
Text1, Text3 oder
Text1, Text4 oder
Text2, Text3

aber nicht
Text1, Text1 etc

CU
Mit Zitat antworten
  #5 (permalink)  
Alt 27-01-2010, 17:33
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 2.865
combie befindet sich auf einem aufstrebenden Ast
Standard

Wie wäre es mit shuffle() und array_slice() ?

Oder wenn die Daten aus der DB kommen direkt mit
"ORDER BY RAND() LIMIT 2"
__________________
Wir werden alle sterben
Mit Zitat antworten
  #6 (permalink)  
Alt 28-01-2010, 02:20
dhcomputer
 Registrierter Benutzer
Links : Onlinestatus : dhcomputer ist offline
Registriert seit: Aug 2003
Beiträge: 17
dhcomputer ist zur Zeit noch ein unbeschriebenes Blatt
dhcomputer eine Nachricht über ICQ schicken
Standard

Um beim Eingangsbeispiel zu bleiben:

PHP-Code:
<?php

$array 
= array("Text1""Text2""Text3""Text4");

// array_rand liefert zufällige array keys zurück
$keys array_rand($array2);

// erhaltene keys durchlaufen
foreach($keys as $key)
{
    
// array mit angabe des key ausgeben
    
echo $array[$key]."<br />";
}

?>
__________________
Professionelle und innovative Programmierung
Mit Zitat antworten
  #7 (permalink)  
Alt 28-01-2010, 11:29
Dirk-Kiel
 Registrierter Benutzer
Links : Onlinestatus : Dirk-Kiel ist offline
Registriert seit: Feb 2003
Beiträge: 41
Dirk-Kiel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

@dhcomputer: danke, das war sehr hilfreich.
Meinen Denkfehler habe ich damit gefunden.
@AmicaNotis: auch dir dank, diese Seite hatte
ich mir schonmal zu Gemüte geführt.

Eins vielleicht noch:
wenn ich jetzt z.B. von 4 auf 8 Strings gehe, mir alle 8
durcheinander wirbeln lasse und nach 4 Strings eine Aktion
stattfinden soll (Umbruch, Tabelle...was auch immer) danach
die restlichen 4 Strings kommen, muß ich den Zähler $i
auf was richten?

CU
Mit Zitat antworten
  #8 (permalink)  
Alt 28-01-2010, 12:09
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich sehe hier zwar kein $i, aber behaupte einfach mal 4.
Mit Zitat antworten
  #9 (permalink)  
Alt 28-01-2010, 12:21
Dirk-Kiel
 Registrierter Benutzer
Links : Onlinestatus : Dirk-Kiel ist offline
Registriert seit: Feb 2003
Beiträge: 41
Dirk-Kiel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
<?php

$array 
= array("Text1""Text2""Text3""Text4""Text5""Text6""Text7""Text8");

// array_rand liefert zufällige array keys zurück
$keys array_rand($array8);

// erhaltene keys durchlaufen
foreach($keys as $key)
{
    
// array mit angabe des key ausgeben
    
echo $array[$key]."<br />";
   
// jetzt kommen ja alle untereinander gelistet, 
   // hier wäre es aber sinnvoll für mich nach 4 erst umzubrechen
}

?>
Wie stelle ich es an, dass ich mit count (?) nach 4mal $key erst den Zeilenumbruch mache und die anderen 4 danach kommen?
PHP-Code:
 $count count($array) ;  // gibt mir die komplette Anzahl an 
CU
Mit Zitat antworten
  #10 (permalink)  
Alt 28-01-2010, 12:42
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Das $keys-Array hat selbst auch wieder einen Key, wenn du also
PHP-Code:
foreach ($keys as $i => $key
schreibst, kannst du bei $i == 4 vorher den Umbruch machen.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #11 (permalink)  
Alt 28-01-2010, 14:18
Dirk-Kiel
 Registrierter Benutzer
Links : Onlinestatus : Dirk-Kiel ist offline
Registriert seit: Feb 2003
Beiträge: 41
Dirk-Kiel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke AmicaNoctis, das war hilfreich.

Danke auch an alle anderen.

CU
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Tägliche Zufallswiedergabe robftp Appz und Script Gesuche 2 07-10-2006 13:21
Durchschnittswert eines Arrays Thoma PHP Developer Forum 11 02-01-2006 02:16
Auswertung eines Arrays mit PHP tolwin PHP Developer Forum 3 31-05-2005 12:05
Maximum aus Arrays, die in einer Liste eines Arrays stehen nixgut PHP Developer Forum 2 08-04-2005 00:07
Summe eines Arrays Chefkoch PHP Developer Forum 5 22-02-2003 23:14

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

Schwere Sicherheitslücke in PHP 5.3.9
Schwere Sicherheitslücke in PHP 5.3.9Die Sicherheitslücke erlaubt das Ausführen von PHP-Code über das Netzwerk. Suhosin bringt Abhilfe öffnet jedoch alte Probleme

02.02.2012 | Berni

Firefox 10 enthält neue Entwicklerwerkzeuge
Firefox 10 enthält neue EntwicklerwerkzeugeFirefox steht in der Version 10 zum Download bereit. Gerade Entwickeler dürften sich über die neuen Entwicklungswerkzeuge freuen.

31.01.2012 | phpler

 

Aktuelle PHP Scripte

Gästebuchservice Script ansehen Gästebuchservice Script

Eröffnen Sie ihren eigenen Gäsebuchservice und bieten Sie ihren Besuchern ein kostenloses Gästebuch an. Verdienen Sie an den Integrierten AD System. Viele Benutzerdeffinierte Einstellungen ermöglichen ihren Kunden eine gute Integration an das Layout ihrer

10.02.2012 maternet | Kategorie: PHP/ Gaestebuch
LizenzMaker

Mit dem PDF-LicenseMaker erstellen Sie völlig unkompliziert und innerhalb kürzester Zeit eine Lizenz für Ihre Software-Artikel im PDF-Format. Sie verwalten die Daten Ihrer Software, Lizenztexte, PDF-Dokumente und Lizenzgrafiken bequem über ein Webinter

10.02.2012 maternet | Kategorie: PHP/ PDF
Top 100 Counterservice mit Verzeichnis ansehen Top 100 Counterservice mit Verzeichnis

Sie erhalten in diesem Script ein Top 100 Verzeichnis mit einem integrierten Counterservice. Wenn Sie sich Registrieren erhalten Sie einen kostenlosen Counter für ihre Website. Wenn ihre Besucher auf den Counter klicken, erhalten Sie automatisch eine h

09.02.2012 maternet | Kategorie: WEBMASTER/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:14 Uhr.