> 백엔드 개발 > PHP 튜토리얼 > 求高手解读一小段无限分类代码,,,

求高手解读一小段无限分类代码,,,

WBOY
풀어 주다: 2016-06-23 14:20:58
원래의
840명이 탐색했습니다.

无限分类

foreach ($rows as $id => $item)
    {
if ($item['pid'])
    {
$rows[$item['pid']][$item['id']] = &$rows[$item['id']]; //主要是这一部分,能详细说明下吗?
$t[] = $id;
}
}

回复讨论(解决方案)

foreach ($rows as $id => $item){	//$rows是一?array,拆分成?值?	if ($item['pid']){		//如果$item['pid']非false		$rows[$item['pid']][$item['id']] = &$rows[$item['id']]; //主要是这一部分,能详细说明下吗?		//我?你列出array的???吧		/**		Array(			?=>Array(				'id'=>'?',				'pid'=>Array(					'id'=>$rows[$item['id']]				),			),		);		/**/		$t[] = $id;		//?$t??array追加值	}} 
로그인 후 복사
로그인 후 복사

对于

$rows = array(  1 => array( 'id' => 1, 'pid' => 0 ),  2 => array( 'id' => 2, 'pid' => 1 ),  3 => array( 'id' => 3, 'pid' => 2 ),  4 => array( 'id' => 4, 'pid' => 3 ),);
로그인 후 복사
로그인 후 복사

$rows[$item['pid']][$item['id']] = &$rows[$item['id']]; 的作用就是这样


前提是数组 $rows 的键与 id 相同

foreach ($rows as $id => $item){	//$rows是一?array,拆分成?值?	if ($item['pid']){		//如果$item['pid']非false		$rows[$item['pid']][$item['id']] = &$rows[$item['id']]; //主要是这一部分,能详细说明下吗?		//我?你列出array的???吧		/**		Array(			?=>Array(				'id'=>'?',				'pid'=>Array(					'id'=>$rows[$item['id']]				),			),		);		/**/		$t[] = $id;		//?$t??array追加值	}} 
로그인 후 복사
로그인 후 복사
为什么这个&符号可以起到和递归一样的效果呢?

对于

$rows = array(  1 => array( 'id' => 1, 'pid' => 0 ),  2 => array( 'id' => 2, 'pid' => 1 ),  3 => array( 'id' => 3, 'pid' => 2 ),  4 => array( 'id' => 4, 'pid' => 3 ),);
로그인 후 복사
로그인 후 복사

$rows[$item['pid']][$item['id']] = &$rows[$item['id']]; 的作用就是这样


前提是数组 $rows 的键与 id 相同
版主经常写这样的代码:$sql=

标识符;

自定义标识符,就像字符串用 ""、'' 括起一样,这里用标识符括起
标识符 自然是自定义的,当然可以给他取个贴近内容的名字

标识符;

自定义标识符,就像字符串用 ""、'' 括起一样,这里用标识符括起
标识符 自然是自定义的,当然可以给他取个贴近内容的名字
了解,灰常感谢,但是这样写有什么作用呢?一般什么情况才会用到?我看网上说是用来转义符号,如果是这样不是可以免去很安全处理函数?但是网上资料很少。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿