PHP 递归遍历Cakephp线程数组(树行为)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 递归遍历Cakephp线程数组(树行为)相关的知识,希望对你有一定的参考价值。

// ESTO ES EN EL MODELO


// CUSTOM VARS
var $documentsList = array(); // esta propiedad guardará lo que vamos tomando del array



// CUSTOM METHODS

// devuelve un listado de los elementos del arbol con sus elementos principales
function getDocumentsList() {

	// creo el array que contendrá los datos
	$documentList = array();

	// traigo los datos
	$documents = $this->find('threaded', array('order' => 'Document.folder DESC, Document.description ASC') );
		//pr( $documents );

	// creo una variable global que pueda ser accedida por la otra función para ir guardando los valores
	$this->traverseArray( $documents );

	return( $this->documentsList );

}


// recorre el array anidado y va asignando en el array los valores
function traverseArray( $items, $level = -1 ) {

	$level++;

	foreach( $items as $item ) {

		// datos de cada elemento
		$this->documentsList[] = array( 'id' => $item['Document']['id'], 'text' => $item['Document']['description'], 'level' => $level, 'folder' => $item['Document']['folder'], 'filename' => $item['Document']['filename'] );

		// si es un array y no está vacío lo recorre
		if ( is_array( $item['children'] ) && !empty( $item['children'] ) ) {
			$this->traverseArray( $item['children'], $level );
		}
	}

}

以上是关于PHP 递归遍历Cakephp线程数组(树行为)的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP用分页处理评论

PHP二叉树递归遍历无限循环问题

超强二叉树解析.必收藏!(数组,链表实现,8种遍历方法,前,中,后序线索化二叉树及其遍历)---风之java

通过 PHP 使用 mysql 进行递归树遍历

php 非递归实现分类树

从Cakephp树中移除分支(树行为)