Maison > cadre php > PensezPHP > Thinkphp volist valeurs clés du tableau de sortie à boucles multiples telles quelles

Thinkphp volist valeurs clés du tableau de sortie à boucles multiples telles quelles

藏色散人
Libérer: 2020-06-05 14:27:00
avant
3783 Les gens l'ont consulté

Ce qui suit est un résumé de l'utilisation des valeurs clés du tableau de sortie multi-boucles Thinkphp volist telles qu'elles sont par la colonne de développement thinkphp framework J'espère que cela sera utile aux amis dans le besoin !

Thinkphp volist valeurs clés du tableau de sortie à boucles multiples telles quelles

Récemment, en raison de projets, je dois utiliser volist. Au cours de ce processus, j'ai rencontré quelques petits problèmes, principalement comment sortir la clé lorsque Volist sort plusieurs données en boucle. J'ai vérifié beaucoup d'informations sur Internet et j'ai été très déçu que la plupart des informations consistaient simplement à coller et à copier les instructions pour la balise volist dans le manuel Thinkphp. Afin d'aider les autres, j'ai décidé d'écrire cet article. (Ici, le framework utilisé est Thinkphp3.2, et d'autres connaissances connexes sont les tableaux PHP). Tout d'abord, postez le code dans le contrôleur :

public function check()
{
    $multiArr = [['a' => ['num' => '1',], 'b' => ['num' => '2',]], ['c' => ['num' => '3',], 'd' => ['num' => '4',]]];
    $this->assign('list', $multiArr);
    $this->display();
}
Copier après la connexion

Le format imprimé est le suivant :

Array
(
    [0] => Array
        (
            [a] => Array
                (
                    [num] => 1
                )
            [b] => Array
                (
                    [num] => 2
                )
        )
    [1] => Array
        (
            [c] => Array
                (
                    [num] => 3
                )
            [d] => Array
                (
                    [num] => 4
                )
        )
)
Copier après la connexion

Évidemment, il s'agit d'un tableau multiple. Si vous souhaitez récupérer leurs valeurs clés, si vous utilisez volist, le code est le suivant :

<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>
Copier après la connexion

Le résultat est le suivant :

1
a   1   b   2
2
c   3   d   4
Copier après la connexion

Ici, il est évident que la valeur clé de la boucle externe est la valeur par défaut du système, et la valeur clé de cette boucle lourde à l'intérieur est déterminée par les données elles-mêmes plutôt que contrôlée par la boucle.

http://document.thinkphp.cn/manual_3_2.html#volist
Copier après la connexion

Dans le manuel Thinkphp, cela est indiqué très clairement. S'il n'y a pas d'autres exigences ici, il peut en fait répondre à la plupart des exigences de sortie des valeurs clés. Mais que se passe-t-il si le tableau est modifié au format suivant :

$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;,
                ]
            ]
        ];
Copier après la connexion

et à ce moment-là, les valeurs clés ​​​​hors de la boucle externe et les valeurs clés ​​​​hors de la boucle interne sont déterminé par les données elles-mêmes, plutôt que contrôlé par la boucle. Qu'en est-il du traitement ? Eh bien, j'ai eu un malentendu à ce moment-là. J'ai toujours voulu utiliser deux volistes pour boucler puis afficher la valeur clé (qui est déterminée par les données elles-mêmes), mais après avoir essayé pendant longtemps, j'ai découvert que c'était toujours le cas. ça ne marche pas. J'ai vérifié de nombreuses informations et constaté que beaucoup d'entre elles ne mentionnaient pas ce problème. Après avoir tué d'innombrables cellules cérébrales et regardé le code, j'ai soudainement pensé que foreach pouvait également effectuer ce type d'opération en boucle. Pourquoi ne pas essayer d'utiliser cette balise ? Ou utiliser ces deux balises ensemble ? Soudain, c’est devenu clair. Alors, modifiez le code frontal comme suit :

 <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>
Copier après la connexion

et obtenez le résultat suivant :

aaa
a   1   b   2
bbb
c   3   d   4
Copier après la connexion

répond aux exigences ci-dessus. Le résumé est le suivant :

Dans thinkphp, lorsque vous utilisez la balise volist pour générer plusieurs boucles de tableau, si vous souhaitez afficher la valeur clé contrôlée par les données au lieu de la valeur par défaut, vous pouvez utiliser la balise foreach dans combinaison avec la balise volist. La valeur clé peut être sortie telle quelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:bbsmax
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal