2016-09-04 3 views
-2

Ich habe diesen Code, der sollte zeigen Sie alle $scheme Werte in einem <ul>. Wie Sie unten sehen können, habe ich 2 $scheme Variablen, aber nur 1 zeigt sich in der <ul>.PHP Liste alle anstelle von 1

$scheme = colorscheme('Test', 'hello'); 
$scheme = colorscheme('Black', 'hello'); 

function colorscheme($color, $url) { 
    return array($color, $url); 
} 

echo '<ul>'; 
foreach ($scheme as $value) { 
    echo '<li>' . $value . '</li>'; 
} 
echo '</ul>'; 

Wie kann ich es jeden $scheme erscheint anstelle von nur 1 so machen?

+3

Ich erkenne Ihre Funktion von einer anderen Frage gestern. Ich fordere Sie auf, PHP-Grundlagen ein wenig mehr zu studieren, da Sie nicht ganz verstehen, wie einfache Dinge wie Variablen und Arrays funktionieren. Das ist wie eines der ersten Dinge, die Sie verstehen sollten, bevor Sie mit der Programmierung fortfahren. Auch hier ist deine Funktion sinnlos. – BadHorsie

Antwort

0

Wie Sie unten sehen können, ich habe 2 $scheme Variablen, aber zeigt nur 1 im <ul> auf.

Das ist, weil $scheme Variable mit jedem Funktionsaufruf überschrieben wird. Sehen Sie hier,

$scheme = colorscheme('Test', 'hello'); // Here, $scheme = array('Test', 'hello'); 
$scheme = colorscheme('Black', 'hello'); // Here, $scheme = array('Black', 'hello'); 

Wie kann ich es machen, so dass jeder $scheme erscheint anstelle von nur 1?

Stellen $scheme als Array, und hängen das zurückgegebene Array von colorscheme() Funktion dieser Anordnung, wie folgt aus:

$scheme = array(); 
$scheme[] = colorscheme('Test', 'hello'); 
$scheme[] = colorscheme('Black', 'hello'); 

Und dann die Schleife durch diesen $scheme Array foreach Schleife alle Farbe anzuzeigen Schemata.

+0

Vielen Dank für die Hilfe hier Rajdeep! – Jerrald

+0

@Jerrald Sie sind herzlich willkommen! :-) –

+0

Wie kann ich einen bestimmten Wert wie den ersten oder zweiten Wert aufrufen? – Jerrald

0

Wenn Sie denselben Variablennamen zweimal verwenden, überschreiben Sie ihn einfach in der zweiten Zeile. Sie müssen eindeutige Variablennamen für jedes Schema verwenden oder sie alle in einem Array halten (was vorzuziehen wäre).

Auch Ihre Funktion dient keinerlei Zweck und ist redundant.

In einfachen Worten könnten Sie alle Schemas in ein mehrdimensionales Array setzen, das ein Array aus Sub-Arrays ist. Durchlaufen Sie dann das Hauptarray und rufen Sie die zwei Elemente jedes Unterarrays ab, sodass Sie sie echotieren können.

$schemes = array(
    array('White', 'scheme 1'), 
    array('Black', 'scheme 2'), 
    array('Green', 'scheme 3') 
); 

echo '<ul>'; 
foreach ($schemes as $scheme) { 
    $color = $scheme[0]; 
    $url = $scheme[1]; 
    echo "<li>$color = $url</li>"; 
} 
echo '</ul>'; 
+0

Dies funktioniert nicht für mich, da das Array ($ schemes) vom Benutzer aufgerufen wird. Dies wird zu einem Konflikt führen, wenn mehrere Benutzer die $ Schemata aufrufen. – Jerrald

+0

@Jerrald Sorry, was du sagst macht nicht viel Sinn.Vielleicht, was Sie tatsächlich erreichen wollen, müssen Sie diesen Code in einer bestimmten Weise implementieren, aber die Code-Logik selbst ist sehr einfach und wird funktionieren. Was meinst du damit, dass der Benutzer das Array oder mehrere Benutzer aufruft? – BadHorsie

+0

Jeder Benutzer. Wie WordPress können sie benutzerdefinierte Farbschemas von überall aufrufen, wenn sie in ihren Plugins mögen, und es wird zum Farbschemasteil von WordPress hinzugefügt. Ich versuche den gleichen Effekt zu erzielen. – Jerrald

Verwandte Themen