شاید برای شما هم پیش آمده که بخواهید در یک متن دنبال یک کلمه یا عبارت بگردید و روی آن تغییرات دلخواه را اعمال کنید.

به عنوان مثال در متن دلخواه دنبال عبارت "دینامیت" بگردید و تمام آنها را به رنگ نارنجی دربیاورید و به صفحه ویکی پدیا واژه "دینامیت" لینکش کنید. یا مثال دیگر در موتور جستجوی داخلی سایتتون عبارت های جستجو شده را پررنگ یا Highlight کنید و خیلی کاربرد های دیگر.

یکی از روش های معمول استفاده از توابع کار با رشته حروف یا String هاست که PHP در این ضمینه بسیار قدرتمند است. استفاده از توابعی مانند strpos ، strlen یا نسخه mb_strpos که برای حروف فارسی و عربی بدون ایراد می شود.

ولی تابع (mb_strpos) برای پیدا کردن اولین کلمه ساده و سریع است منتها برای پیدا کردن همه ی کلمات در متن بخصوص متون طولانی، علاوه بر پیچیدگی برنامه، بدلیل حلقه for طولانی مصرف cpu بالایی دارد.

خوش بختانه در این مواقع روش Regular Expression یا همان RegEx با سرعت بالا به کمک ما می آید. در ادامه ی مطلب با نوین ایران باشید که چگونه با چند خط ساده بکمک RegEx (با قابلیت پشتیبانی از حروف فارسی و UTF-8) مسئله را حل کنیم.

همان طور که میدانید یکی از نقاط قوت PHP توابع پیش فرض متعدد در کتابخانه ی آن است. آرایه در PHP کاربرد بسیاری دارد و در واقع کار Stack و Queue (پشته و صف)، لیست پیوندی و... در دل خود دارد. این توابع در برنامه نویسی شما بسیار کاربردی بوده و علاوه بر سهولت استفاده، سبب خواناتر شدن برنامه و سریعتر شدن آن می شود.

توابع کلی کار با آرایه را در سایت رسمی PHP.NET می توانید پیدا کنید ولی همه ی این توابع همیشه مورد استفاده شما نیستند و شاید حوصله بررسی همه را نداشته باشید.

نوین ایران در جدول زیر لیست توابع پرکاربرد کار با آرایه را در PHP برای شما تهیه کرده و توضیح مختصری هم به زبان فارسی در جلوی هر Function آمده است. با کلیک روی Function می توانید وارد صفحه رسمی هر Function در سایت PHP.NET شده و مثال های آن را نیز ببینید.

تابع توضیحات
array() تعریف یک آرایه
array_change_key_case() تغییر تمام اندیس یا کلید های یک آرایه
array_chunk() تقسیم آرایه به چند تکه
array_combine() دو آرایه را ترکیب میکند، آرایه اول کلید ها و آرایه دوم مقادیر آن ها
array_count_values() تعداد کل مقادیر آرایه را برمیگرداند
array_flip() برعکس کردن کل کلید های یک آرایه
array_keys() فقط کلید های یک آرایه را در قالب یک آرایه دیگر بر میگرداند
array_merge() ترکیب یک یا چند آرایه
array_multisort() مرتب سازی آرایه یک یا چند وجهی
array_pad() گسترش آرایه با مقداری دلخواه در صورت کم بودن تعداد

درصورتی که یک آرایه ای داشته باشیم که شامل رابطه ی پدر فرزندی بین دو خانه ی آن باشد ولی بصورت زیر شاخه نباشند، بهتر است آن را برای فهم بهتر و استفاده راحت تر به شکل درختی دربیاورید. (توجه داشته باشید در PHP چون آرایه های چند بعدی حافظه ی زیادتر اشغال نمی کنند عملاً تغییر شکل آرایه ها و تشکیل آرایه های تودرتو در اشغال حافظه ی رم تاثیری ندارد)

به عنوان مثال جدولی بنام category در پایگاه داده داریم که این جدول شامل دو کلید id و parent_id می باشد که parent_id پدر فیلد مورد نظر است. همان طور که می دانید اگر با دستور select نتایج از دیتابیس مثلا MySQL خوانده شود آرایه ای به شکل زیر تحویل php می شود:

$items = array(
         array('id' => 42, 'parent_id' => 1),
         array('id' => 43, 'parent_id' => 42),
         array('id' => 1,  'parent_id' => 0),
);

حال برای استفاده راحتر باید آرایه به شکل زیر تبدیل شود :

array
(
    [id] => 1
    [parent_id] => 0
    [childs] => Array
        (
            [0] => 
                (
                    [id] => 42
                    [parent_id] => 1
                    [childs] => Array
                        (
                            [0] => 
                                (
                                    [id] => 43
                                    [parent_id] => 42
                                )
                        )
                )
        )
)

همان طور که مشاهده می کنید درخت ایجاد شده و شاخه ای بنام childs درصورتی که فرزندی وجود داشته باشد تشکیل می گردد. برای ایجاد چنین آرایه ای به کد php زیر دقت کنید...: