Ups, stimmt, habe mich durch die Beispiele im Handbuch verwirren lassen.
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] finde & zeichen für preg_match nicht
Einklappen
Neue Werbung 2019
Einklappen
X
-
noop
Super... von anfänglich 10 Code Zeilen sind jetzt nur noch 2 übrig, die genau das gleiche umsetzen wie meine anfänglichen 10.
array_slice kannte ich bis dato noch garnicht. Klappt ziehmlich gut... auch mit den neuen durchsortieren.
Vielen Dank für die vielen Verbesserungsvorschläge
Kommentar
-
Es kann sinnvoll sein, sich anstelle von Tutorials auch mal eine "langweilige" Funktionsreferenz anzuschauen, um ein paar neue Funktionen kennenzulernen. Z.B. unter Übersicht Funktionsreferenz oder direkt im Manual.
Gruß[URL]http://hallophp.de[/URL]
Kommentar
-
Ich kenne auch nicht alle Array-Funktionen auswendig. Dazu sind es zu viele und die meisten davon sind auch recht speziell, sodass man die nicht unbedingt besonders häufig nutzt. Wenn ich also mal ein spezielles Array-Problem habe, schaue ich mir eigentlich immer zuerst einmal die Array-Funktionsübersicht an. Meistens werde ich da fündig.Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”
Kommentar
-
noop
oki... pinned.
Vllt. kann mir jm. noch einen Tip geben, wie ich nachfolgendes besser umsetzen könnte.
Ich habe oben im Kopfbereich einige Länder als Boxen aufgeführt.
Diese sollen (wenn aktiviert) den Backroundcolor in yellow bekommen.
PHP-Code:<?php
$count = count($zuordnung_reihenfolge); // Zähle wieviel Einträge vorhanden sind
$a=0;
while($count > $a)
{
$name = $zuordnung_reihenfolge[$a];
if ($name == 'Europa') {$Europa = 'style="background-color:yellow;"';}
if ($name == 'Asien') {$Asien = 'style="background-color:yellow;"';}
$a++;
}
?>
<a href="?<?php echo $URL; ?>&Europa" <?php echo $Europa; ?> class="ankerlink">Europa</a>
<a href="?<?php echo $URL; ?>&Asien" <?php echo $Asien; ?> class="ankerlink">Asien</a>
Nur finde ich das ganze in der PHP-Schleife ein wenig un-dynamisch umgesetzt.
Eigendlich wollte ich es so umsetzen, das ein Variablenname selbst erzeugt wird. Leider klappt das nicht wirklich.
PHP-Code:$count = count($zuordnung_reihenfolge); // Zähle wieviel Einträge vorhanden sind
$a=0;
while($count > $a)
{
$name = $zuordnung_reihenfolge[$a]; //$name hat nun z.B. Asien
'$'.$name = 'style="background-color:yellow;"'; //Verknüpfe $name mit $ um eine neue Variable zu erzeugen
$a++;
}
Kommentar
-
Du könntest ein Array verwenden.PHP-Code:<?php
$lang = array('europe' => '', 'asia' => '',);
// ...
while (...) {
$name = $zuordnung_reihenfolge[$a]; // europe, asia, usw.
$lang[$name] = 'f00';
}
// ...
?>
<a href="file.php"<?php echo ($lang['europe'] != '' ? ' style="background-color:#' . $lang['europe'] . '"' : ''); ?>>
Europa
</a>
Und arbeite immer mit aktiviertem error_reporting!Code:<?php error_reporting(E_ALL | E_STRICT);
Funktioniert auch ohne fehler.[URL]http://hallophp.de[/URL]
Kommentar
-
noop
oh... ternären Operatoren. Mein Lieblingsthema **schrei+wegrenn**
Unabhängig dessen würde ich mal ins blaue behaupten, das mir das nicht viel weiter bringt.
Sicherlich estwas Professioneller... aber bei weiten länger.
Besonders im nachfolgenden Bespiel würde ich z.Zt. auf 23 Zeilen (weitesgehend eqivalänte) Zeilen kommen.
PHP-Code:$buchstaben = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','v','w','z');
for ( $x=0 ; $x<23; $x++) {
echo '<a href="?'.$URL.'&'.$buchstaben[$x].'" class="ankerlink">.'.$buchstaben[$x].'*</a>';
}
Kommentar
-
noop
soo.. ich müßte der Sache nun schon mal näher gekommen sein.
Zumindest bekomme ich im gewissen Sinne einen gelben Hintergrund:
PHP-Code:$buchstaben = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','v','w','z');
$count = count($buchstaben); // Zähle wieviel Einträge vorhanden sind
for ( $x=0 ; $x<$count; $x++)
{
//echo $zuordnung_buchstaben[$x];
if(in_array($zuordnung_buchstaben[$x],$buchstaben))
{
echo '<a href="?'.$URL.'&'.$buchstaben[$x].'" style="background-color:yellow;" class="ankerlink">.'.$buchstaben[$x].'*</a>';
}
else
{
echo '<a href="?'.$URL.'&'.$buchstaben[$x].'" class="ankerlink">.'.$buchstaben[$x].'*</a>';
}
}
Oder anders rum gesagt... er fängt von vorne an zu markieren. Habe ich z.B. 5 Buchstaben in der Variable: $zuordnung_buchstaben dann werden immer die !ersten! 5 Buchstaben markiert.
Kommentar
-
noop
Ich hab das schon drinne...
Code:error_reporting(E_ALL ^ E_NOTICE); ini_set('display_errors', 1);
Bekommen tu ich die ganze Zeit schon das.
Code:Warning: array_count_values(): The argument should be an array in index2.php on line 55 Warning: Invalid argument supplied for foreach() in index2.php on line 56 index.php
Kommentar
-
Zitat von noop Beitrag anzeigenBekommen tu ich die ganze Zeit schon das.
Ran da, aber sofortigst.
Ich bin in Zeile 249 beginnend. Und da wird leider kein Fehler zurückgegeben.
(Wie du die da drin stehen hast, hast du uns übrigens noch nicht gezeigt. Ist das ein Array, ein String, ...?)[SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]
Kommentar
-
noop
Zitat von ChrisB Beitrag anzeigenDoch, ganz bestimmt, wenn du in $zuordnung_buchstaben fünf Werte drinstehen hast.
(Wie du die da drin stehen hast, hast du uns übrigens noch nicht gezeigt. Ist das ein Array, ein String, ...?)
print_r($zuordnung_buchstaben);
Code:( [0] => m [1] => j [2] => p [3] => v [4] => z )
echo $zuordnung_buchstaben[0];
Code:m
Ich habe eine Vermutung... aber ich denke mal, das das egal sein sollte.
Ich rufe das ganze innerhalb einer Schleife ja so auf:
PHP-Code:if(in_array($zuordnung_buchstaben[$x],$buchstaben))
Was macht denn die Schleife wenn er den 6ten Durchlauf erreicht hat ?
Denn bei 5 Werten ist ja Feierabend.
Wenn ich aber... eingebe, dann bekomme ich nichts zurück.
PHP-Code:echo $zuordnung_buchstaben[6];
Das müßte ein FALSE zurückliefern, wo ich mich dann in der else schleife befinden müsste.
Aber wenn das so ist, dann müste mein Code korrekt sein.
Kommentar
-
noop
Habs.
Als ich dir (bzw. auch mir) die Frage laut gestellt habe, ist der groschen gefallen.
PHP-Code:$count = count($buchstaben); // Zähle wieviel Einträge vorhanden sind
for ( $x=0 ; $x<$count; $x++)
{
if(in_array($buchstaben[$x],$zuordnung_buchstaben))
{
echo '<a href="?'.$URL.'&'.$buchstaben[$x].'" style="background-color:yellow;" class="ankerlink">.'.$buchstaben[$x].'*</a>';
}
else
{
echo '<a href="?'.$URL.'&'.$buchstaben[$x].'" class="ankerlink">.'.$buchstaben[$x].'*</a>';
}
}
Done.... danke fürs Zuhören (Und jetzt mach ich die PHP Warnings)
Kommentar
-
Zitat von noop Beitrag anzeigen$x ist dabei der count aus $buchstaben. Ergibt im übrigen 23.
Was macht denn die Schleife wenn er den 6ten Durchlauf erreicht hat ?
Denn bei 5 Werten ist ja Feierabend.
Wenn ich aber... eingebe, dann bekomme ich nichts zurück.
Genauer bitte, nicht immer so schwammig.
Was du mit obigem Code auf jeden Fall bekommst, sind Meldungen a la
Code:Notice: Undefined offset: 5 in [...]
Aber wenn das so ist, dann müste mein Code korrekt sein.
Also ist deine Logik falsch, und dann macht es wenig Sinn, sich noch mit weiteren „ja dann müsste doch aber folgendes passieren ...“-Überlegungen aufzuhalten.
Überlege dir logisch, was du wirklich prüfen willst - und dann setze es vernünftig um.[SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]
Kommentar
Kommentar