تبدیل آرایه به رشته در پی اچ پی
روشهای زیادی برای تبدیل آرایه به رشته در پی اچ پی وجود دارد. ساده ترین روش پردازش آرایه در یک حلقه و تبدیل اعضای آرایه به رشته و الحاق آنها در یک متغیر رشتهای است.
اما توابع پی اچ پی کار را بسیار راحت کرده است. برای تبدیل آرایه به رشته چند تابع معرفی کرده است که در کوتاه ترین زمان و با یک خط کد در طراحی وب سایت و یا اپلیکشنهای تحت وب میتوانید یک آرایه را به رشته تبدیل نمائید.
تبدیل آرایه به رشته تابع implode
این تابع در مستندات پی اچ پی به دو صورت تعریف شده است که در زیر میبینید.
implode ( string $glue , array $pieces ) : string
implode ( array $pieces ) : string
این تابع اعضای آرایه را با پارامتر glue به هم دیگه الحاق میکند. در واقع بعد از هر یک از اعضای ارایه یک بار رشتهی glue را جایگزین میکند تا به آخرین رشته برسد.
پارامترهای تابع implode
در حالت اول تابع implode دو پارامتر دارد
اولین پارامتر یا همان glue رشتهی جدا کننده را مشخص میکند که این رشته مابین عناصر آرایه درج میشود.
پارامتر دوم آرایهای را مشخص میکند که قراره اعضای آن آرایه به هم دیگه ملحق بشن تا یک رشته ایجاد شود.
بیشتر بخوانید: تابع substr در php
خروجی تابع implode
مشخصا خروجی تابع implode یک رشته خواهد بود که از اعضای آریه یا پارامتر دوم تشکیل یافته و با پارمتر اولش از همدیگه جدا شده اند.
اگر پارامتر اول این تابع را حذف کنیم پی اچ پی اعضای آرایه به همدیگه وصل میکنه و آنها را با فاصله از هم جدا میکنه.
چند مثال برای تابع implode که شامل مثالهای وب سایت پی اچ پی هم میشه.
<?php
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
// Empty string when using an empty array:
var_dump(implode('hello', array())); // string(0) ""
?>
اگر یک آرایه خالی را به عنوان آرگومان به پارامتر دوم این تابع ارسال کنید فارغ از این که آرگومان اولش چی باشه خروجی یک رشتهی خالی خواهد بود که طول آن صفر است.
اگر یک آرایه خالی یا یک آرایه بدون هیچ عضوی به عنوان دومین آرگومان به این تابع ارسال کنید این تابع به خوبی کار میکنه
<?php
$a1 = array("1","2","3");
$a2 = array("a");
$a3 = array();
echo "a1 is: '".implode("','",$a1)."'<br>";
echo "a2 is: '".implode("','",$a2)."'<br>";
echo "a3 is: '".implode("','",$a3)."'<br>";
?>
will produce:
===========
a1 is: '1','2','3'
a2 is: 'a'
a3 is: ''
اگر آرایهی ارسال شده فقط یک عضو داشته باشد آرگومان دوم هیچ کاربردی نخواهد داشت.
تابع implod آرایههای انجمنی را نیز بدون هیچ مشکلی به رشته تبدیل میکند:
<?php
declare(strict_types=1);
$a = array( 'one','two','three' );
$b = array( '1st' => 'four', 'five', '3rd' => 'six' );
echo implode( ',', $a ),'/', implode( ',', $b );
?>
outputs:
one,two,three/four,five,six
در طراحی وب سایت برای تولید لیست های ترتیبی یا غیر ترتیبی و … میتوانید از این تابع استفاده نمائید.
<?php
$elements = array('a', 'b', 'c');
echo "<ul><li>" . implode("</li><li>", $elements) . "</li></ul>";
?>
این فقط یک مثال بود اکثر قسمتهای رابط کاربری وب سایت با کدهای مشابه و با این تابع قابل پیاده سازی است.
اگر میخواهید اعضای آرایه دادههایی از نوع منطقی یا بولین باشند یک نتیجه عجیب غریب در یافت خواهید کرد.
مثال زیر را ببینید:
<?php
var_dump(implode('',array(true, true, false, false, true)));
?>
Output:
string(3) "111"
در این فراخوانی true به یک تبدیل شده و false ها حذف شده اند.