다음은 thinkphp 프레임워크개발 칼럼에서 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 = [ 'aaa' => [ 'a' => [ 'num' => '1', ], 'b' => [ 'num' => '2', ] ], 'bbb' => [ 'c' => [ 'num' => '3', ], 'd' => [ 'num' => '4', ] ] ];
그리고 이때 외부 루프 밖으로 나온 키 값과 내부 루프 밖으로 나온 키 값은 데이터 자체에 의해 결정됩니다. , 루프에 의해 제어되지 않는 경우 이를 처리하는 방법은 무엇입니까? 글쎄요, 그 당시 저는 오해에 빠졌습니다. 저는 항상 두 개의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!