Maison  >  Article  >  cadre php  >  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

藏色散人
藏色散人avant
2020-06-05 14:27:003583parcourir

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();
}

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
                )
        )
)

É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>

Le résultat est le suivant :

1
a   1   b   2
2
c   3   d   4

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

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;,
                ]
            ]
        ];

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>

et obtenez le résultat suivant :

aaa
a   1   b   2
bbb
c   3   d   4

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer