• 2 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
سوال در مورد str_replace و array
#1
سلام .

داشتم تایپکی که v0id عزیز باز کرده بودند و درباره ی توابع توضیح میدادند رو مطالعه میکردم - با این که کار کرد str_replace رو ميدونم گفتم کار از محکم کاری که عیب نمیکنه شاید ازش تونستیم چیز جدیدی یاد بگیریم . رسیدم به مثال اخری که زده شده بود :

http://forum.iranphp.org/Thread-%D9%85%D...58#pid3458

یعنی این :

کد پی‌اچ‌پی:
<?php
// Outputs: apearpearle pear
$letters = array('a''p');
$fruit   = array('apple''pear');
$text    'a p';
$output  str_replace($letters$fruit$text);
echo 
$output;
?>

این چی شد که به این صورت در اومد ؟ چند روزه فکرم رو مشغول کرده و به نتیجه ای نرسیدم . خواهش میکنم مبتدیانه توضیح بدید که خوب متوجه بشم .


با تشکر Heart
تشکر شده توسط :
#2
سلام

سادست . به منوال یه نگاه بنداز توضیحات خوبی داده . البته تاپیک علیرضا ترجمه همون هست.
کد:
http://ir.php.net/manual/en/function.str-replace.php

در کدی که گذاشتی ، $letters آرایه ای هست که مقداریش رو در رشته مورد نظر $text جستجو میکنه و در صورت پیدا کردن با مقادیر $fruit جایگزین میکنه.

در واقع تو مثالی که زدی ، رشته Text رو از چپ به راست میگرده و هرجا با حروف a ویا b برخورد کرد ، مقدار متناظرش یعنی apple و pear رو قرار میده .

آرایه جستجو (search) نسبت به آرایه جایگزین (replace) می تونه رابطه چند به یک و یا یک به یک داشته باشه و ...
تشکر شده توسط :
#3
مرسی از پاسختون .

اما برای مثال . الان اینجا میاد توی letters$ كه a و b هست رو از توی text$ سرچ میکنه و با fruit$ جايگزین میکنه . خوب اگه بخوایم اینجوری پیش بریم که باید حرف اول apple باشه چون که a رو پیدا کرده و باید با apple جايگزین کنه اما اینجا ouput ما apear هست اولش ... Huh

نمیدونم سوالم رو متوجه شدید یا نه ؟
تشکر شده توسط :
#4
خروجی مثال بالا apearpearle pear هست
دلیل:
اول میاد به جای a کلمه apple رو جایگزین می کنه. حالا رشته ما شده apple p حالا میاد به جای p در رشته apple p رشته pear رو اضافه می کنه پس نتیجه میشه apearpearle pear
تشکر شده توسط : HiddeN
#5
رشته Text را از سمت چپ به راست برای هر یک از مقادیر آرایه Search مرور میکنه ؛

در اولین مرحله رشته 'a p' به 'apple p' تبدیل میشه -> یعنی به جای حرف a کلمه apple جایگزین شد .

در مرحله بعد رشته 'apple p' رو برای حرف p جستجو میکنه و هر p را با pear جایگزین میکنه => apearpearle pear

به جای دو p موجود در apple هم pear قرار میده و ...

لینکی در منوال دادم رو مطالعه کنید کاملا مشخصه . در مثالی که قبل این کد شما زده توضیح داده که به ترتیب این کار ها انجام میشه . Wink
تشکر شده توسط : HiddeN


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان