Thinkphp volist mehrere Schleifen gibt die Array-Schlüsselwerte unverändert aus

藏色散人
Freigeben: 2020-06-05 14:27:00
nach vorne
3739 Leute haben es durchsucht

Das Folgende ist eine Zusammenfassung der Verwendung von Thinkphp-Volist-Multi-Loop-Ausgabearray-Schlüsselwerten, wie sie durch das thinkphp-Framework Entwicklungskolumne verwendet werden. Ich hoffe, dass es für Freunde in Not hilfreich sein wird!

Thinkphp volist mehrere Schleifen gibt die Array-Schlüsselwerte unverändert aus

Seit kurzem muss ich aufgrund von Projekten Volist verwenden. Während dieses Vorgangs bin ich auf einige kleine Probleme gestoßen, vor allem auf die Frage, wie der Schlüssel ausgegeben wird, wenn volist mehrere Daten in einer Schleife ausgibt. Ich habe viele Informationen im Internet überprüft und war sehr enttäuscht, dass die meisten Informationen nur aus dem Einfügen und Kopieren der Anweisungen für das Volist-Tag im Thinkphp-Handbuch bestanden. Um anderen zu helfen, habe ich beschlossen, diesen Artikel zu schreiben. (Hier ist das verwendete Framework Thinkphp3.2, und andere verwandte Kenntnisse sind PHP-Arrays). Posten Sie zunächst den Code im Controller:

public function check()
{
    $multiArr = [['a' => ['num' => '1',], 'b' => ['num' => '2',]], ['c' => ['num' => '3',], 'd' => ['num' => '4',]]];
    $this->assign('list', $multiArr);
    $this->display();
}
Nach dem Login kopieren

Das gedruckte Format ist wie folgt:

Array
(
    [0] => Array
        (
            [a] => Array
                (
                    [num] => 1
                )
            [b] => Array
                (
                    [num] => 2
                )
        )
    [1] => Array
        (
            [c] => Array
                (
                    [num] => 3
                )
            [d] => Array
                (
                    [num] => 4
                )
        )
)
Nach dem Login kopieren

Offensichtlich handelt es sich hierbei um ein Mehrfacharray. Wenn Sie ihre Schlüsselwerte erhalten möchten und volist verwenden, lautet der Code wie folgt:

<tr>
<volist name="list" id="data" key="k">
<td>{$k}</td>
<td>
<tr>
<volist name="data" id="vo">
<td>{$key}</td>
<td>{$vo.num}</td>
</volist>
</tr>
</td>
</volist>
</tr>
Nach dem Login kopieren

Das Ergebnis lautet wie folgt:

1
a   1   b   2
2
c   3   d   4
Nach dem Login kopieren

Hier ist es offensichtlich, dass der Schlüsselwert von Die äußere Schleife ist der Systemstandard, und der Schlüsselwert dieser schweren Schleife im Inneren wird durch die Daten selbst bestimmt und nicht durch die Schleife gesteuert.

http://document.thinkphp.cn/manual_3_2.html#volist
Nach dem Login kopieren

Im Thinkphp-Handbuch steht dies sehr deutlich. Wenn hier keine weiteren Anforderungen bestehen, kann es tatsächlich die meisten Anforderungen für die Ausgabe von Schlüsselwerten erfüllen. Was aber, wenn das Array in das folgende Format geändert wird:

$multiArr = [
            &#39;aaa&#39; => [
                &#39;a&#39; => [
                    &#39;num&#39; => &#39;1&#39;,
                ],
                &#39;b&#39; => [
                    &#39;num&#39; => &#39;2&#39;,
                ]
            ],
            &#39;bbb&#39; => [
                &#39;c&#39; => [
                    &#39;num&#39; => &#39;3&#39;,
                ],
                &#39;d&#39; => [
                    &#39;num&#39; => &#39;4&#39;,
                ]
            ]
        ];
Nach dem Login kopieren

und zu diesem Zeitpunkt sind die Schlüsselwerte aus der äußeren Schleife und die Schlüsselwerte aus der inneren Schleife wird durch die Daten selbst bestimmt und nicht durch die Schleife gesteuert. Was ist mit der Verarbeitung? Nun, ich hatte damals ein Missverständnis. Ich wollte immer zwei Volisten verwenden, um eine Schleife durchzuführen und dann den Schlüsselwert auszugeben (der durch die Daten selbst bestimmt wird), aber nachdem ich es lange versucht hatte, stellte ich fest, dass dies immer noch der Fall war Funktioniert nicht. Ich habe viele Informationen überprüft und festgestellt, dass dieses Problem in vielen davon nicht erwähnt wurde. Nachdem ich unzählige Gehirnzellen getötet und mir den Code angesehen hatte, dachte ich plötzlich, dass foreach auch diese Art von Schleifenoperation ausführen kann. Warum nicht versuchen, diese Bezeichnung zu verwenden? Oder diese beiden Tags zusammen verwenden? Plötzlich wurde es klar. Ändern Sie also den Front-End-Code wie folgt:

 <tr>
        <foreach name="list" item="data" key="i">
            <td>{$i}</td>
            <td>
            <tr>
                <volist name="data" id="vo" key="k">
                    <td>{$key}</td>
                    <td>{$vo.num}</td>
                </volist>
            </tr>
            </td>
        </foreach>
    </tr>
Nach dem Login kopieren

und erhalten Sie das folgende Ergebnis:

aaa
a   1   b   2
bbb
c   3   d   4
Nach dem Login kopieren

erfüllt die oben genannten Anforderungen. Die Zusammenfassung lautet wie folgt:

Wenn Sie in thinkphp das volist-Tag zur Ausgabe mehrerer Arrays in einer Schleife verwenden und den durch die Daten gesteuerten Schlüsselwert anstelle des Standardwerts ausgeben möchten, können Sie foreach verwenden Tag in Kombination mit dem volist-Tag Der Schlüsselwert kann so ausgegeben werden, wie er ist.

Das obige ist der detaillierte Inhalt vonThinkphp volist mehrere Schleifen gibt die Array-Schlüsselwerte unverändert aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:bbsmax
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage