Click here to Skip to main content
15,883,737 members
Please Sign up or sign in to vote.
2.00/5 (1 vote)
See more:
I am working on tree formatting of an associative array:

VB
Array
(
    [8] => Array
        (
            [name] => David Clance
            [email_id] => dclance@gmail.com
            [designation] => Chief Executive Officer
            [member] => Array
                (
                    [62] => Array
                        (
                            [name] => Sonali Yadav
                            [email_id] => syadav@gmail.com
                            [designation] => Managing Director
                            [member] => Array
                                (
                                    [1147] => Array
                                        (
                                            [name] => Samina Falgun
                                            [email_id] => sfalgun@gmail.com
                                            [designation] => Associate Technical Product Manager
                                            [member] => Array
                                                (
                                                    [676] => Array
                                                        (
                                                            [name] => Rushi Vyas
                                                            [email_id] => rvyas@gmail.com
                                                            [designation] => Team Lead
                                                            [member] => Array
                                                                (
                                                                    [946] => Array
                                                                        (
                                                                            [name] => Vijay Gade
                                                                            [email_id] => vgade@gmail.com
                                                                            [designation] => Software Engineer
                                                                            [member] => Array
                                                                                (
                                                                                )

                                                                        )

                                                                    [1450] => Array
                                                                        (
                                                                            [name] => Shivraj Singh
                                                                            [email_id] => ssingh01@gmail.com
                                                                            [designation] => Software Engineer
                                                                            [member] => Array
                                                                                (
                                                                                )

                                                                        )

                                                                )

                                                        )

                                                    [2748] => Array
                                                        (
                                                            [name] => Neetha Sunny
                                                            [email_id] => nsunny@gmail.com
                                                            [designation] => Software Engineer
                                                            [member] => Array
                                                                (
                                                                    [2855] => Array
                                                                        (
                                                                            [name] => Celvin Game
                                                                            [email_id] => cgame@gmail.com
                                                                            [designation] => Software Engineer
                                                                            [member] => Array
                                                                                (
                                                                                )

                                                                        )
                                                                )

                                                        )

                                                    [1497] => Array
                                                        (
                                                            [name] => Pranali Dighe
                                                            [email_id] => pdighe@gmail.com
                                                            [designation] => Software Engineer
                                                            [member] => Array
                                                                (
                                                                )

                                                        )

                                                    [3399] => Array
                                                        (
                                                            [name] => Employee Tue
                                                            [email_id] => employee@gmail.com
                                                            [designation] => Accounts Officer
                                                            [member] => Array
                                                                (
                                                                )

                                                        )

                                                )

                                        )

                                    [2882] => Array
                                        (
                                            [name] => Akash Meheta
                                            [email_id] => ameheta@gmail.com
                                            [designation] => Manager - Administrations
                                            [member] => Array
                                                (
                                                    [972] => Array
                                                        (
                                                            [name] => Rajendra Gore
                                                            [email_id] => rgore@gmail.com
                                                            [designation] => Office Assistant
                                                            [member] => Array
                                                                (
                                                                )

                                                        )

                                                    [2925] => Array
                                                        (
                                                            [name] => Ankush Dadar
                                                            [email_id] => adadar@gmail.com
                                                            [designation] => Office Supervisor
                                                            [member] => Array
                                                                (
                                                                )

                                                        )

                                                )

                                        )
                                    )
                        )
                    [189] => Array
                        (
                            [name] => Dharmendra Shroff
                            [email_id] => dshroff@gmail.com
                            [designation] => Director Of Engineering
                            [member] => Array
                                (
                                    [443] => Array
                                        (
                                            [name] => James Bond
                                            [email_id] => jbond@gmail.com
                                            [designation] => Software Development Manager
                                            [member] => Array
                                                (
                                                )

                                        )

                                    [1638] => Array
                                        (
                                            [name] => Nilesh Tyagi
                                            [email_id] => ntyagi@gmail.com
                                            [designation] => Associate Manager
                                            [member] => Array
                                                (
                                                    [1825] => Array
                                                        (
                                                            [name] => Asha Das
                                                            [email_id] => adas@gmail.com
                                                            [designation] => Team Lead
                                                            [member] => Array
                                                                (
                                                                    [2561] => Array
                                                                        (
                                                                            [name] => Prashant Manere
                                                                            [email_id] => pmanere@gmail.com
                                                                            [designation] => Data Support Executive
                                                                            [member] => Array
                                                                                (
                                                                                )
                                                                        )
                                                                )
                                                        )
                                                )
                                        )
                                )
                        )
                )
        )
)



On the basis of ['member'] key, trying to display tree structure in parent-child formation like:

David Clance
	Sonali Yadav
		Samina Falgun
			Rushi Vyas
				Vijay Gade
				Shivraj Singh
			Neetha Sunny
				Celvin Game
			Pranali Dighe
			Employee Tue
		Akash Meheta
			Rajendra Gore
			Ankush Dadar
	Dharmendra Shroff
		James Bond
		Nilesh Tyagi
			Asha Das
				Prashant Manere


I have code like below to get the incremented row count for every array element and column count to tab values in array:

<?php
	$this->m_intRowCount = 1;
	$intColumnCount = 0;
	
	public function handle() {
		if( true == valArr( $this->m_arrmixEmployees ) ) {
			$this->getEmployeeDetails( $this->m_arrmixEmployees, $intColumnCount );
		}
	}
	
	public function getEmployeeDetails( $arrmixEmployees, $intColumnCount ) {
		foreach( $arrmixEmployees as $keys => $values ) {
		
			$this->m_intRowCount++;	
			echo $values['name'] . " " . $values['designation'];
			
			if( true == valArr( $values['member'] ) ) {
				echo "<br>";
				$intColumnCount++;
				
				foreach( $values['member'] as $key => $value ) {
					$this->m_intRowCount++;
					
					echo $value['name'] . " " . $value['designation'];
					
					if( true == valArr( $value['member'] ) ) {
						echo "<br>";
						$intColumnCount++;
						$this->getEmployeeDetails( $value['member'], $intColumnCount );
						$intColumnCount--;
					} else {
						echo "<br>";
					}
					
				}
			} else {
				echo "<br>";
				continue;
			}
			
		}
	}
Posted
Updated 3-Jun-15 19:32pm
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900