String به Array تبدیل به Key و Val فوری

X7337X

Member
سلام

اینو یه نگاه بندازید
PHP:
<?php
array(
    "work" => "php", 
    "os" => "linux"
    );
?>
حالا میخوام این متغیر رو به صورت بالا در بیارم

کد:
work@php*os@linux

یعنی work و os بشه [key] و php و linux بشه [val]

و یه function تعریف بشه که وقتی work قرار گرفت php نمایش داده بشه
و وقتی os قرار گرفت linux نمایش بده

فکر کنم با explode و implode بشه

خیلی emergency هست لطفا هر کس میدونه راهنمایی کنه
 

yakoza

Well-Known Member
براي چي مي خوايي اين كار رو بكني ؟
بگو شايد يه راه بهتر پيدا كرديم
 

X7337X

Member
این یه سوال هست
و گفته شده که از implode و Explode هم استفاده بشه
 

web2

Member
و گفته شده که از implode و explode هم استفاده بشه
فکر کنم اینجوری راحت تره:

PHP:
<?php
$a = array(
    "work" => "php", 
    "os" => "linux"
    );
    
$count = count($a);
$keys    = array_keys($a);
$values    = array_values($a);
$tmp     = '';

for($i=0 ; $i<$count; $i++){
    if($i == $count-1)
        $tmp .= $keys[$i].'@'.$values[$i];
    else
        $tmp .= $keys[$i].'@'.$values[$i].'*';
}

echo $tmp;
?>
 

X7337X

Member
دوست من web2 جان من گفتم string رو به array تبدیل کنید شما عکس عمل کردین
string زیر رو به صورت array میخوام
کد:
work@php*os@linux

لطف کردی
 

web2

Member
ببخشید!

ببخشید شما گفتید اورژانسیه ما هم سریع پریدیم روی کد زدن!

این هم کد:

PHP:
<?php
$str = 'work@php*os@linux';

$arr = explode('*' , $str);

foreach($arr as $key => $value){
    list($thisKey[$key] , $thisValue[$key] ) = explode('@' , $value);
}

print_r( array_combine($thisKey , $thisValue));
?>
 

X7337X

Member
ایول کارت حرف نداره ولی implode نداشت که
اشکال نداره

حالا چطور میشه تو function تعریفش کرد که وقتی work قرار گرفت php نمایش بده ؟؟
 

web2

Member
این رشته مرتب داره تجزیه می شه برای همین اصلا implode نمی خواهد .

الان ساعت 1:30 شبه دیگه چشام باز نمی شه ولی اون هم ساده است . کمی فکر کنی به جواب می رسی
 

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

بالا