欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2024-02-02 14:20:58
...
无限分类 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=

标识符;

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

标识符;

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