نمایش آرایه به صورت درخت

۵ سال پیش(به روز شده در ۵ سال پیش) پی اچ پی(PHP)(توابع) ۰(غیر فعال)

تابع print_r برای نمایش متغیر مخصوصا آرایه ها بسیار پر کاربرد است و قطعا برنامه نویسان php بارها با آن برخورد داشته اند. بعنوان مثال:

print_r(array('country' => array('country1', 'country2'), 'book' => array('book1','book2')));

---------------------------out----------------------------- Array ( [country] => Array ( [0] => country1 [1] => country2 ) [book] => Array ( [0] => book1 [1] => book2 ) )

اما گاهی با آرایه های بزرگی سروکار داریم که نمایش آنها جز سردرگمی نتیجه ای بدست نخواهد داد یعنی لازم است تا ریشه هایی که نیاز به نمایش ندارند را بسته نگه داشت بدین منظور نمایش درخت وار در حالتی که با کلیک بر روی هر شاخه , زیرشاخه آن به نمایش در آید می تواند بررسی نمایش آرایه ها را دلچسبتر و قابل فهم تر کند.  

function print_r_tree($data)
{
    $out = print_r($data, true);
    $out = preg_replace('/([ \t]*)(\[[^\]]+\][ \t]*\=\>[ \t]*[a-z0-9 \t_]+)\n[ \t]*\(/iUe',
        "'\\1<a href=\"javascript:toggleDisplay(\''.(\$id = substr(md5(rand().'\\0'), 0, 7)).'\');\">\\2</a><div id=\"'.\$id.'\" style=\"display: none;\">'",
        $out);
    $out = preg_replace('/^\s*\)\s*$/m', '</div>', $out);
    echo '<script language="Javascript">function toggleDisplay(id) { document.getElementById(id).style.display = (document.getElementById(id).style.display == "block") ? "none" : "block"; }</script>' .
        "\n$out";
}


print_r_tree(array('country' => array('country1', 'country2'), 'book' => array('book1', 'book2')));

--------------------------------out-------------------------------------
Array
(
    [country] => Array
    [book] => Array
)

برچسبها

هیچ برچسبی موجود نیست.

صفحات پیشنهادی

مرتب سازی آرایه های چند متغیری و چند بعدی در php...

تابع زیر مرتب سازی یک آرایه با چندین مقدار برای هر ایندکس و آرایه چند بعدی را با اعمال محدودیت انجام میدهد. میتوانید با اندکی تغییر آنرا پیشرفته تر کنید!......

گرفتن محتوای وب سایت با کمک curl در php...

در پستهای قبل چنین مطلبی ذکر شده بود اما اینبار از قدرت سری توابع curl برای این منظور استفاده نمودیم. مزیت استفاده از این روش معرفی User agent و سایر موارد اضافی است که بصورت معمول نمیتوان با استفاده ...

جدا سازی سه رقمی اعداد جهت خوانایی بهتر با تابع numberformat...

در php تابعی با نام number_format جهت جدا سازی سه رقمی اعداد وجود دارد ، اما با این وجود برای آموزش و جلوگیری از خطا بدلیل پشتیبانی نشدن در نسخه های مختلف php این تابع را معرفی می کنیم که به شرح زیر ا...

بررسی کردن وجود اندیس در آرایه تو در تو در زبان php...

گاهی لازم است وجود یک اندیس در یک آرایه تو در تو را مشخص کرد. تابع زیر به این درخواست ما پاسخ میدهد و وجود اندیس درخواستی ما را در تو در تو ترین آرایه جستجو میکند......