ホームページ PHPフレームワーク ThinkPHP Thinkphp volist 複数ループで配列キー値をそのまま出力

Thinkphp volist 複数ループで配列キー値をそのまま出力

Jun 05, 2020 pm 02:27 PM
thinkphp

以下は、thinkphp フレームワーク開発コラムによる、Thinkphp volist マルチループ出力配列キー値の使用法をそのまままとめたものです。困っている友人の役に立てば幸いです。

Thinkphp volist 複数ループで配列キー値をそのまま出力

最近、プロジェクトの都合により volist を使用する必要があります。このプロセス中に、主に Volist がループで複数のデータを出力するときにキーを出力する方法など、いくつかの小さな問題に遭遇しました。インターネットで多くの情報を確認しましたが、ほとんどの情報が Thinkphp マニュアルの volist タグの手順を貼り付けてコピーしただけであったことに非常にがっかりしました。他の人を助けるために、私はこの記事を書くことにしました。 (ここで使用するフレームワークは Thinkphp3.2 であり、その他の関連知識は PHP 配列です)。まず、コントローラーにコードを投稿します。

public function check()
{
    $multiArr = [['a' => ['num' => '1',], 'b' => ['num' => '2',]], ['c' => ['num' => '3',], 'd' => ['num' => '4',]]];
    $this->assign('list', $multiArr);
    $this->display();
}
ログイン後にコピー

出力される形式は次のとおりです。

Array
(
    [0] => Array
        (
            [a] => Array
                (
                    [num] => 1
                )
            [b] => Array
                (
                    [num] => 2
                )
        )
    [1] => Array
        (
            [c] => Array
                (
                    [num] => 3
                )
            [d] => Array
                (
                    [num] => 4
                )
        )
)
ログイン後にコピー

明らかに、これは複数の配列です。 volist を使用してキーの値を取得したい場合、コードは次のようになります。

<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>
ログイン後にコピー

得られた結果は次のとおりです。

1
a   1   b   2
2
c   3   d   4
ログイン後にコピー

ここで、キーの値が取得されていることは明らかです。外側の重いループのキー値はシステムのデフォルトであり、この内側の重いループからのキー値は、ループによって制御されるのではなく、データ自体によって決定されます。

http://document.thinkphp.cn/manual_3_2.html#volist
ログイン後にコピー

Thinkphp マニュアルには、これについて非常に明確に記載されています。他に要件がない場合は、キー値を出力するためのほとんどの要件を満たすことができます。しかし、配列が次の形式に変更された場合はどうなるでしょうか:

$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;,
                ]
            ]
        ];
ログイン後にコピー

そしてこのとき、外側のループのキー値と内側のループのキー値はループではなくデータ自体によって決定される場合、処理はどうなるでしょうか?そうですね、そのとき誤解していたのですが、ずっとvolistを2つ使ってループさせてキーの値(データそのもので決まる)を出力したいと思っていたのですが、長い間試してみたところ、やはりそれができないことが分かりました。働かないよ。多くの情報を確認しましたが、多くの情報でこの問題について言及されていないことがわかりました。無数の脳細胞を殺してコードを眺めていると、ふと、foreach でもこのようなループ演算ができるのではないかと思いつき、このラベルを使ってみてはいかがでしょうか?それともこれら 2 つのタグを一緒に使用しますか?突然、それが明らかになりました。したがって、フロントエンド コードを次のように変更します。

 <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>
ログイン後にコピー

得られる結果は次のとおりです。

aaa
a   1   b   2
bbb
c   3   d   4
ログイン後にコピー

は上記の要件を満たしています。要約は次のとおりです。

thinkphp では、volist タグを使用してループ内で複数の配列を出力するときに、デフォルトの代わりにデータによって制御されるキー値を出力したい場合は、foreach を使用できます。 volistタグと組み合わせてキー値をそのまま出力できます。

以上がThinkphp volist 複数ループで配列キー値をそのまま出力の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

thinkphpプロジェクトの実行方法 thinkphpプロジェクトの実行方法 Apr 09, 2024 pm 05:33 PM

ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

thinkphp にはいくつかのバージョンがあります thinkphp にはいくつかのバージョンがあります Apr 09, 2024 pm 06:09 PM

ThinkPHP には、さまざまな PHP バージョン向けに設計された複数のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

thinkphpの実行方法 thinkphpの実行方法 Apr 09, 2024 pm 05:39 PM

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

laravelとthinkphpではどちらが優れていますか? laravelとthinkphpではどちらが優れていますか? Apr 09, 2024 pm 03:18 PM

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重点を置いて、一般に Laravel よりもパフォーマンスが優れています。 Laravel は優れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

thinkphpのインストール方法 thinkphpのインストール方法 Apr 09, 2024 pm 05:42 PM

ThinkPHP のインストール手順: PHP、Composer、および MySQL 環境を準備します。 Composer を使用してプロジェクトを作成します。 ThinkPHP フレームワークと依存関係をインストールします。データベース接続を構成します。アプリケーションコードを生成します。アプリケーションを起動し、http://localhost:8000 にアクセスします。

開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法 開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法 Nov 22, 2023 pm 12:01 PM

「開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法」 インターネット技術の急速な発展に伴い、Web アプリケーションには、多数の同時リクエストと複雑なビジネス ロジックを処理するための要件が​​ますます高まっています。システムのパフォーマンスとユーザー エクスペリエンスを向上させるために、開発者は多くの場合、電子メールの送信、ファイルのアップロードの処理、レポートの生成など、時間のかかる操作を実行するために非同期タスクの使用を検討します。 PHP の分野では、人気のある開発フレームワークとして ThinkPHP フレームワークが、非同期タスクを実装するための便利な方法をいくつか提供しています。

thinkphpのパフォーマンスはどうですか? thinkphpのパフォーマンスはどうですか? Apr 09, 2024 pm 05:24 PM

ThinkPHP は、キャッシュ メカニズム、コードの最適化、並列処理、データベースの最適化などの利点を備えた高性能 PHP フレームワークです。公式パフォーマンステストでは、1秒あたり10,000以上のリクエストを処理できることが示されており、実際のアプリケーションではJD.comやCtripなどの大規模なWebサイトやエンタープライズシステムで広く使用されています。

開発に関する提案: API 開発に ThinkPHP フレームワークを使用する方法 開発に関する提案: API 開発に ThinkPHP フレームワークを使用する方法 Nov 22, 2023 pm 05:18 PM

開発の提案: API 開発に ThinkPHP フレームワークを使用する方法 インターネットの継続的な発展に伴い、API (アプリケーション プログラミング インターフェイス) の重要性がますます高まっています。 API は、異なるアプリケーション間の通信の橋渡しとなるもので、データの共有や関数の呼び出しなどを実現し、開発者に比較的簡単かつ迅速な開発手法を提供します。優れた PHP 開発フレームワークである ThinkPHP フレームワークは、効率的でスケーラブルで使いやすいです。

See all articles