Reply to creating a 'print_r'-like function

Your name:

Reply:


Posted by lawpoop on 03/23/07 20:33

Hello!

I am working on a map of a rather large php project that I've been
working on. I hope to create a map of the files of the project that
would look like the output of the unix 'tree' command:

..
|-- index.php
| |-- menu.php
| |-- content.php
| |-- admin_page.php
| | |-- admin_function1.php.inc
| | |-- admin_function2.php.inc
| | |-- admin_function3.php.inc
| | `-- admin_subpage.php
| | |-- admin_subfunction1.php.inc
| | |-- admin_subfunction1.php.inc
| | `-- admin_subfunction1.php.inc
| `-- user_page.php
| |-- user_function1.php.inc
| |-- user_function2.php.inc
| |-- user_function3.php.inc
| `-- user_subpage.php
| |-- user_subfunction1.php.inc
| |-- user_subfunction1.php.inc
| `-- user_subfunction1.php.inc
|
|-- orphan_page.php
`-- deprecated_page.php

I can scan my php files and pull out references to php file names.
I've created an array that looks like this:

Array
(
[0] => ./index.php
[1] => Array
(
[0] => ./clients.php
[1] => Array
(
[0] => ./login_function.inc
[1] => ./client.php
[2] => ./client_new.php
[3] => ./client_edit.php
)
[2] => ./inventory.php
[3] => Array
(
[0] => ./login_function.inc
[1] => ./inventory_item_add.php
[2] => ./inventory_item_remove.php
)

[4] => ./daily_report.php
[5] => ./weekly_report.php
[6] => ./monthly_report.php
[7] => ./catalog.php
[8] => Array
(
[0] => ./login_function.inc
[1] => ./catalog_item_add.php
[2] => ./catalog_item_remove.php
)
[9] => ./orders.php
[10] => Array
(
[0] => ./login_function.inc
[1] => ./view_order.php
[2] => ./order_new.php
[3] => ./order_edit.php
)
[11] => ./invoices.php
[12] => Array
(
[0] => ./login_function.inc
[1] => ./view_invoice.php
[2] => ./invoice_new.php
[3] => ./invoice_edit.php
[4] => ./invoice_print.php
[5] => ./invoice_email.php
)
)
[2] => ./clients_old.php
[3] => ./old_inventory.php
)

However, I'm having problems with the function that reads the array
and outputs the tree-like results. This is what I'm getting:

- ./index.php
- - ./clients.php
- - - ./login_function.inc
- - - ./client.php
- - - ./client_new.php
- - - ./client_edit.php
- - - ./inventory.php
- - - - ./login_function.inc
- - - - ./inventory_item_add.php
- - - - ./inventory_item_remove.php
- - - - ./daily_report.php
- - - - ./weekly_report.php
- - - - ./monthly_report.php
- - - - ./catalog.php
- - - - - ./login_function.inc
- - - - - ./catalog_item_add.php
- - - - - ./catalog_item_remove.php
- - - - - ./orders.php
- - - - - - ./login_function.inc
- - - - - - ./view_order.php
- - - - - - ./order_new.php
- - - - - - ./order_edit.php
- - - - - - ./invoices.php
- - - - - - - ./login_function.inc
- - - - - - - ./view_invoice.php
- - - - - - - ./invoice_new.php
- - - - - - - ./invoice_edit.php
- - - - - - - ./invoice_print.php
- - - - - - - ./invoice_email.php
- - ./clients_old.php
- - ./old_inventory.php


And this is my code:

<?

show_array( $array );

function show_array( $array, $level = 0, $counter = 0 ) {

$count = count($array);


foreach ( $array as $key => $value ) {

if ( is_array($value) ) {

$level++;

$counter = 0;

show_array( $value, $level, $counter );

} else {

$counter++;

for ( $i = 0; $i <= $level; $i++ ) {
echo " - ";
}

echo "$value\n";

if ( $counter == $count ) {

$level--;

$counter = 0;
}
}
}
}


-------------------
As far as I can tell, the $level counter is not getting decremented
correctly . Can someone help me out?

Steve Lefevre

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация