찾다
PHP 프레임워크ThinkPHPThinkphp volist 다중 루프는 배열 키 값을 그대로 출력합니다.

다음은 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를 사용하여 루프를 만든 다음 키 값(데이터 자체에 의해 결정됨)을 출력하고 싶었지만 오랫동안 시도한 후에 여전히 그렇지 않다는 것을 알았습니다. 작동하지 않습니다. 많은 정보를 확인한 결과 많은 정보에서 이 문제가 언급되지 않은 것으로 나타났습니다. 수많은 뇌 세포를 죽이고 코드를 살펴본 후 갑자기 foreach도 이런 종류의 루프 작업을 수행할 수 있다는 생각이 들었습니다. 이 레이블을 사용해 보는 것은 어떨까요? 아니면 이 두 태그를 함께 사용하시겠습니까? 갑자기 명확해졌습니다. 따라서 프런트 엔드 코드는 다음과 같이 변경되었습니다.

 <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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 bbsmax에서 복제됩니다. 침해가 있는 경우 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 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!