تبدیل رشته به شکل آرایه به آرایه واقعی

ahmad ajiloo

New Member
سلام
من یک چنین رشته ای دارم.
[LTR]
array('a1'=>array('a11'=>'hello world','a12'=>0,'a13'=>array('a131'=>'on','a132'=>'0','a133'=>'salam')),'a2'=>23)[/LTR]
و می خوام این رشته رو به یک آرایه واقعی تبدیل کنم. که بشه بهش دسترسی داشت. مثلا داشته باشم:
[LTR]
echo $my_array['a1']['a11']; // hello world
[/LTR]
متشکر
 

sajadmaz

Member
ساختار آرایه اگه همیشه ثابت هست یک کد کانورت براش بنویس با explode
 

Cyletech

Member
من یک چنین رشته ای دارم.

array('a1'=>array('a11'=>'hello world','a12'=>0,'a13'=>array('a131'=>'on','a132'=> '0','a133'=>'salam')),'a2'=>23)​
این رشته نیست ، یک آرایه هست. شاید بشه گفت یک آرایه تو در تو.

من نفهمیدم شما میخواید چیکار کنید. میخواید آرایه بالا رو بصورت رشته داشته باشید پشت سر هم؟ یا نه میخواید مثل مثالی که زدید اون قسمت مورد نظرتون از آرایه رو بدست بگیرید؟ اگر این حالته که همون روشتون درسته. اما اگر میخوای به حالت داشته باشی یعنی آرایه رو به رشته پشت سر هم تبدیل کنی از implode() استفاده کن که آرایه را در پارامتر دوم میگیره و در پارامتر اول رشته میانی اونها رو دریافت می کنه. که شما پارامتر اول را خالی مشخص کنید (یعنی این: "" ). ولی چون آرایه تو در تو هست باید یکم پیشرفته تر کنید و بررسی کنید هر ورودی که به foreach میره آرایه اگر بود یک foreach دیگه اجرا بشه و مقدارهای نهایی رو در یک آرایه دیگر بریزد و در آخر اون آرایه رو با استفاده از implode() به رشته تبدیل کنید.
 

Domanjiri

Well-Known Member
سلام

تابع eval این کار رو انجام میده، مثال:

PHP:
<?php

$from_external_source = '( "a" => "1", "b" => array( "b1" => "2", "b2" => "3" ) )';

eval( '$external_source_as_array = array'.$from_external_source.';' );

if ( is_array( $external_source_as_array ) ) {

// now you can work with the external source as an array
print_r( $external_source_as_array );

}

?>
منبع کد: کامنت های زیر لینک بالا!

موفق باشین
 

جدیدترین ارسال ها

بالا