php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.11.2008, 20:50  
Neuer Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 4
The Prophet befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] array_rand mehrdimensionales array

Hallo zusammen,

nachdem ich nun schon meine eigenen grauen Zellen angestrengt habe und nicht mehr weiter weiß, suche ich hier bei euch Rat.

Wie folgt sieht mein Mehrdimensionaler Array aus:
PHP-Code:
echo '<pre>'print_r($textetrue), '</pre>';
Array
(
    [
0] => Array
        (
            [
0] => Auto1 als Link formatiert
            
[1] => Auto2 als Link formatiert
            
.... 
            [
19] => Auto20 als Link
        

    [
1] => Array 
        ( 
            [
0] => Auto1 als purer relativer Link
            
[1] => Auto2 als purer relativer Link
            
.... 
            [
19] => Auto20 als purer relativer Link
       
)
    [
2] => Array 
       ( 
           [
0] => Name und Bezeichnung des Autos1
           
[1] => Name und Bezeichnung des Autos2
           
.... 
           [
19] => Name und Bezeichnung des Autos20
       
)

Dieser wird automatisch über ein Pattern mit preg_match_all gefüttert. Was auch bestens funktioniert. Doch nun zu dem Problem. Ich brauch aus dem Array eine variable Anzahl an Werten. z.B. 5 Werte, das ganze habe ich bisher wie folgt gelöst:
PHP-Code:
echo "<ul>";
for (
$i=0$i<5$i++) {
    
echo 
"<li><a href=\"http://www.example.de".$texte[1][$i]."\" target=\"_blank\">".$texte[2][$i]."</a></li>";
}
echo 
"</ul>"
Bis mir aufgefallen ist das somit ja nur die ersten 5 Werte des Arrays ausgegeben werden. Und somit auch immer die selben 5. Was ich suche ist eine Möglichkeit 5 zufällige Werte aus dem Array auszugeben. Ich suche also 5 Links aus $texte[1] die zu 5 Bezeichnungen aus $texte[2] passen.

All meine Versuche mittels array_rand sind daran aber bisher gescheitert. Über einen Ansatz oder eine Lösung würde ich mich sehr freuen.
The Prophet ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.11.2008, 22:37  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich würde das nicht über array_rand lösen, allein deshalb weil array_rand nicht immer einwandfrei funktioniert.

Mach doch ein mt_rand(0,count($texte)) und danach ein mt_rand(0,count($texte[$ergebnisVomErstenRand]))

mfg

PS: hab gerade gesehen das du nur sachen aus $texte[1] holen willst. In dem fall sparste dir das erste mt_rand und machst einfach
PHP-Code:
$index mt_rand(0,count($texte[1]));
$randomNumber $texte[1][$index]; 
... das 5x und du hast 5 zufällige werte aus $texte[1]
BlackWolf ist offline  
Alt 28.11.2008, 23:22  
Neuer Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 4
The Prophet befindet sich auf einem aufstrebenden Ast
Standard

Klingt gut hatte werde ich mal testen Aber dann hab ich ja nur die Werte aus $texte[1] benötige aber die passenden Paare aus $texte[2] dazu...leider

Danke
The Prophet ist offline  
Alt 29.11.2008, 00:26  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Bitte achte ein bisschen auf deine Rechtsschreibung, ist teilweise echt schwierig etwas zu lesen.

Zitat:
Zitat von The Prophet Beitrag anzeigen
Klingt gut hatte werde ich mal testen Aber dann hab ich ja nur die Werte aus $texte[1] benötige aber die passenden Paare aus $texte[2] dazu...leider

Danke
Das is aber nicht das Problem. Da du nun einen der 5 zufälligen indexe kennst, kannst du das natürlich auch erweitern...

PHP-Code:
$index mt_rand0sizeof$texte] ) );

$text1 $texte][ $index ];
$text2 $texte][ $index ];
... 
Zudem bevorzuge ich eine andere Arraystruktur:
PHP-Code:
$array = array(
  
=> array(
    
'name' => 'Name und Bezeichnung des Autos1',
    
'url'  => './link.html',
  ),
  
=> array(
    
'name' => 'Name 2',
    
'url'  => './link2.html',
  ),
  ...
);

/*
** Dann kannst du das nämlich auch anders lösen...
*/
shuffle$array );

/*
** Deine 5 ausgaben
*/
echo '<ul>';

$i 1;
foreach( 
$array => $row )
{
  echo 
'<li><a href="' $row'url' ] . '">' $row'name' ] . '</a></li>';
  
  if ( 
$i == )
    break;
  
  ++
$i;
}

echo 
'</ul>'
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
Alt 29.11.2008, 10:54  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von BlackWolf Beitrag anzeigen
allein deshalb weil array_rand nicht immer einwandfrei funktioniert.
Bitte um Quellenangabe.
David ist offline  
Alt 29.11.2008, 12:47  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von David Beitrag anzeigen
Bitte um Quellenangabe.
PHP: array_rand - Manual
unter windows gibt array_rand() keine zufälligen ergebnisse aus. Durfte die Erfahrung selbst machen als ich mir lauter zufällige Einträge in die Datenbank schreiben wollte (um was zu testen) und das sich dann gemütlich nach ein paar Einträgen immer wieder wiederholt hat

mfg
BlackWolf ist offline  
Alt 29.11.2008, 12:58  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Au weia, mit den Zufallsgeneratoren scheint es PHP ja nicht so zu haben
David ist offline  
Alt 29.11.2008, 13:00  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von David Beitrag anzeigen
Au weia, mit den Zufallsgeneratoren scheint es PHP ja nicht so zu haben
ja, naja, mt_rand() hat bisher ganz gute ergebnisse geliefert und solang man unter unix arbeitet ist es sowieso kein problem

mfg
BlackWolf ist offline  
Alt 29.11.2008, 14:06  
Neuer Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 4
The Prophet befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,

vielen Dank für deine Anregung tomtaz. Die Arraystruktut gefällt mir gut. Doch leider habe ich keine Idee wie ich zu dieser kommen soll.

Mein Pattern ist dieser hier:
PHP-Code:
$pattern2 '/<h4>\s[^>]*<a\s[^>]*href=\"([^\"]*)\"[^>]*>(.*)<\/a>/siU'
dazu kommt dann:
PHP-Code:
preg_match_all($pattern2$string$texte); 
Was dann den bereits oben erwähnten Array ergibt.
The Prophet ist offline  
Alt 29.11.2008, 14:08  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Doch leider habe ich keine Idee wie ich zu dieser kommen soll.
mit PREG_SET_ORDER. Der Rest ist Indexsache.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


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
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Soapfault: Undefined Property Argi PHP-Fortgeschrittene 0 28.07.2008 11:17
Kategoriedaten rekursiv in Array bringen Schiedsrichter PHP Tipps 2008 2 10.12.2007 15:43
ARRAY: alle möglichen Kombinationen Tentacle PHP Tipps 2006 13 12.05.2006 00:18
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array wie auslesen? PHP Tipps 2005 7 07.03.2005 11:43
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php shuffle array mehrdimensional, php shuffle mehrdimensionales array, zweidimensionales array shuffle, array_rand mehrdeminsional, mehrdimensionale arrays shuffel, php shuffle mehrhrdimensionale array, php array_rand mehrdimensionaler array, php array_rand mehrdimensional, mehrdimensionales array shuffle, array_rand, shuffle mehrdimensionales array, php mehrdimensionales array shuffle, php array mehrdimensional zufall, php array mehrdimensional random, random aus mehrdimensionalem array php, array_rand bei mehrdimensionalen arrays, array zufällig ausgeben php mehrdimensional, array_rand mehrdimensionales array, shuffle zweidimensionales array, php mehrdimensionales array mischen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:32 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