دريافت Firefoxشما از نسخه ساده رايت کليک استفاده مي نماييد. براي ديدن نسخه پيشرفته رايت کليک، در صورت استفاده از يک مرورگر استاندارد، [ اينجا ]کليک نماييد.

آخرين عناوين ارسالي به انجمن ها
لينک هاي دوستان
به دليل حجم زياد فقط تعدادي به صورت تصادفي نمايش داده شده اند.
آرایه ها - قسمت اول
بازديد ها: 1545, پاسخ ها: 8
آرایه ها - قسمت اول
توسط rsh_eboy در 14 شهريور 1387 - 11:22 ، پست ها: 541
سلام،
خسته نباشيد
آرايه نوع دادهاي خاص است که مي توان آن را به يک ظرف از مقادير تشبيه کرد.
آرايه مي توند مجموعه اي از اعداد،رشته ها،مولفه ها،اشاره گرها و حتي آرايه ديگري باشد.برخلاف برخي ديگر از زبان هاي برنامه نويسي مقادير آرايه ها مي توند به صورت مختلط باشد.به طور مثال يک آرايه مي تواند به طور همزمان اعداد،رشته و مولفه ها را ذخير کنيد.
به هر يک از عضو هاي يک آرايه يک عنصر از آن آرايه مي گويند.
آرايه چند بعدي:
هنگامي که عنصر يک آرايه خود يک آرايه باشد به آن آرايه آرايه چند بعدي مي گويند.
کليدها:
کليدها را مي تون به نام متغيير ها تشبيه کرد که از طريق آنها مي توان مقادير مربوطه دسترسي پيدا کرد.
اگه نوع کليد رشته باشد به آن آرايه آرايه انجمني مي گويند.
تغغير پذيري:
برخلاف زبان هايي مانند جاوا و ++C در زبان PHP نيازي به مشخص کردن تعداد عناصر آرايه نمي باشد و آرايه ها مي توانند بر اساس نياز بزرگ يا کوچک شوند.به اين خاصيت تغيير پذيري آرايه مي گويند.

يکي ديگر از ويژگي هاي آرايه هاي PHP عدم نياز به تعريف نوع داده مي باشد.در واقع اين خاصيت موجب افزايش انعطاف پذيري آرايه ها شده است.
براي ايجاد آرايه از تابع array استفاده مي شود.
براي اين منظور به صورت زير عمل مي کنيم:
کد: انتخاب همه
$rsh = array('islamic','republic','of','Iran');
ت
وضيحات:
rsh متغيري اختياري است.
islamic و republic و of و Iran چهار عنصر دلخواه هستند که مي توان تعداد آنها را تغيير داد.
کليدهاي آرايه چون تعريف نشده اند به طور پيشفرض عدد مي باشند.
--
براي دستيابي به مقادير آرايه به صورت زير عمل مي کنيم:
کد: انتخاب همه
$rsh[0];

براي واضح بودن مثال:
کد: انتخاب همه
echo $rsh[0];

که خروجي اين مثال با توجه به عناصر موجود islamic خواهد بود.
براي افزودن يک عنصر جديد به صورت زير عمل مي کنيم:
کد: انتخاب همه
$rsh[4]= 'Dot';

كه Dot مقدار دلخواه ما مي باشد.
براي نمايش تمامي مقادير يک آرايه از print_r استفاده مي کنيم:
کد: انتخاب همه
print_r($rsh);

ايجاد آرايه هاي انجمني:
همانطور که توضيح داده شد آرايه هاي انجمني داراي کليدهايي از نوع رشته هستند.در واقع مزيت آرايه هاي انجمني ايجاد يک ارتباط معنايي بين کليد و عناصر مي باشد.
مثلا:
کد: انتخاب همه
$rsh= array('name'=>'reza','gener'=>'male');
echo $rsh['name'];
echo $rsh['gener'];

براي شمارش تعداد عاصر يک آرايه از count استفاده مي کنيم.
کد: انتخاب همه
echo  count($rsh);

براي دستايابي به تمام عناصر آرايه ها مي توان از حلقه هاي تکرار استفاده کرد:
کد: انتخاب همه
<?php
$rsh = array('islamic','republic','of','Iran');
$counts = count($rsh);
for($i=0;$i<$counts;$i++){
echo "$rsh[$i] ";
}
?>

و اگر آرايه ما از نوع آرايه هاي انجمني باشه بايد از foreach استفاده کنيم:
کد: انتخاب همه
<?php
$rsh= array('name'=>'reza','gener'=>'Male','Mina'=>'Female','Mohammad'=>'Male');
foreach ($rsh as $Key => $value)
{
echo "The value of $Key is : $value";
}
?>

آرايه هاي چند بعدي:
همونطور که گفتم اگه اگر عناصر يک آرايه خود آرايه باشند به آن آرايه، آرايه چند بعدي مي گويند.
مثال:
کد: انتخاب همه
<?php
$rsh= array();
$rsh[0] = array('CMS'=>'reza','PHP'=>'SH');
$rsh[1] = array('URL'=>'http://Rightclick.ir','Title'=>'.: | Rightclick |:.');
$url = $rsh[1]['URL'];
$title = $rsh[1]['Title'];
echo 'Find nice articles on <a href='.$url.'>'.$title.'</a>';
?>

که فکر نکنم نياز به توضيح نداشته باشه.
تغيير مولفه هاي جاري:
با استفاده از توابع current,next,prev,reset,end مي توان در آرايه حر کت کرد.
reset : اين تابع اشاره گر را به اولين عنصر آرايه مي برد و مقداري را برنمي گرداند.
next : اين تابع اشاره گر را به عنصر بعدي مي برد و در صورت وجود مقدار آن را برمي گرداند در غير اين صورت false بر گردانده مي شود.
prev : اين تابع هم که عکس next عمل مي کند.
current : اين تابع عنصر جاري را بر مي گرداند.
end : اين تابع به آخرين عنصر موجود اشاره مي کند.
مثال:
کد: انتخاب همه
<?php
// Even nums up to 20
$even_num = array('2','4','6','8','10','12','14','16','18','20');
reset($even_num);
//echo prev($even_num).'<br>';
echo next($even_num).'<br>';
echo next($even_num) .'<br>';
echo prev($even_num) .'<br>';
reset($even_num);
echo end($even_num);
?>

قصد داشتم تمام مطالب رو يک جا بگم.ديدم هم خسته کننده و هم طولاني مي شه وبعلاوه مجبور مي شم مثال کمتري بزنم براي همين در يک تاپيک مجزا قسمت بعدي رو بزودي ارسال مي کنم.در ضمن براي تيتر ها هم از کتاب کمک گرفتم.
موفق باشيد :wink:
التماس دعا :kuss:
خدانگهدار
[ تبليغات ] سیستم فروش e-bookسیستم فروش آنلاین کتاب و جزوه الکترونیکی و ...
دستت در نكنه
توسط websun در 14 شهريور 1387 - 12:24 ، پست ها: 100
سلام مرسي كه داري كمك ميكنيد و لي اگه مشكلات سي ام اس خبري رفع كني فكر كنم خيلي بهتر باشه يعني زود تر :D
راستي در مورد ارسال ايميل هم من ري پلي كردم يك نگاه بنداز
ممنون
Re: آرايه ها
توسط rsh_eboy در 15 مرداد 1389 - 19:59 ، پست ها: 541
در ادامه ميخوام با يك تابع فوق العاده ارزشمند در آرايه شروع كنم.
اين تابع در كد نويسي يكي از شيووه هاي متداول من شده و خيلي برام كارايي داشته.
فرض كنيد در فرم ورودي تون 10 الي 20 فيلد داشته باشيد و همه مقادير ارسال با توجه به اينكه با از نظر وجود كاراكتر هاي مخرب (يا ناسازگار يا هر اسمي!) بررسي بشند تا جلوي برخي روش هاي متداول نفوذ مانند sql_injection و ... گرفته بشه.
كد زير رو ببنيد:
کد: انتخاب همه
$name = safe($_POST['name']);
$family= safe($_POST['family']);
$test= safe($_POST['test']);
$php= safe($_POST['php']);
$net= safe($_POST['net']);
$wht= safe($_POST['wht']);
$user= safe($_POST['user']);
$pass= safe($_POST['pass']);

در اينجا تابع safe يك تابع user defined هست يعني خودم براي خودم تعريف كردم . مثلا ميتونه به اين صورت باشه:
کد: انتخاب همه
function safe($value,$type='0'){
$value = mysql_real_escape_string( $value );
$value = stripslashes( trim($value) );
   $value = htmlspecialchars($value);
return $value;
}

ديديد كه براي تك تك متغير ها مجبور شدم،يك تابع رو به كار ببندم و كلي دردسر ، و تازه چون نميخواستم توضيح طولاني بشه يك تابع هم (safe) به كار بردم وگرنه بايد براي هر كدوم از متغير ها 3 الي 4 خط كد مي نوشتم.
همونطور كه مي دونيم متدهاي POST و GET آرايه هستند.بنابراين ما با توابع مفيد آرايه هاي مي تونيم روشون جولان بديم!
بريم سر وقت اصل مطلب:
[COLOR="Red"]تابع array_walk[/COLOR]
اين تابه 2 ورودي داره.اولي نام آرايه و دومي نام تابع.
ساختار :
کد: انتخاب همه
bool array_walk  (  array &$array  ,  callback $funcname  [,  mixed $userdata  ] )

نقل قول از manula php.net
Applies the user-defined function funcname to each element of the array array.

array_walk() is not affected by the internal array pointer of array. array_walk() will walk through the entire array regardless of pointer position.
[/QUOTE]

در واقع اين تابع همونطور كه از اسمش پيداست روي ْآرايه ما قدم ميزنه ! و كليد و مقدار هر عنصر آرايه رو از يك تابع شخصي ميگذرونه و نتيجه رو جايگزينش مي كنه.
و اما استفاده اي كه من از اين تابع كردم:
کد: انتخاب همه
function safemini(&$value,$key){
$value = safe($value);
return $value;
}
array_walk($_POST,'safemini');

تابع safemini كه در برنامه خودم بود رو كمي ساده تر كردم،در واقع اين باز نوعي خلاقيت در كد نويسي محسوب ميشه كه چرا تابع جديدي ايجاد شده...مثلا گاهي لازم هست در بعضي فرم هامون مقادير html هم بپذيريم از كاربر پس ، تو اين تابع جديد ميشه يك شرط بذاريم اگه مقدار key فلان بود يا فلان چيزو توش داشت ديگه كاريش نداشته باش يا يك طور ديگه باهاش رفتار بشه و ...
استفاده ديگه اي كه از اين تابع داشتم در صفحات ajax بود!اگر با ajax كار كرده باشيد حتما ميدونيد موقع ارسال مقادير اگه فرم شامل برخي كاراكتر هاي خاص باشه js خطا ميده ! چون ساختارش بهم ميريزه و حقم داره ! پس توي js ما مقادير رو خنصي مي كنيم و مثلا + رو با يك مجمموعه كاراكتر دلخواه جايگزين مي كنيم.و بعد مي فرستيم . مثلا من + رو با **rsh** جايگزين مي كنم و بعد سمت php مجددا **rsh** رو با + عوض مي كنم.اين كار هم بايد براي تك تك مقادير ارسالي در صفحات ajax رعايت بشه پس با هيمن روش خيلي از حجم كد كاسته ميشه...
ادامه دارد!
Re: آرايه ها - قسمت اول
توسط mortezaa در 15 مرداد 1389 - 23:01 ، پست ها: 248
بسیار عالی بود آموزش های شما خیلی جالب هستش واقعا تبریک می گم به این هوش شما
:wink:

این جمله من در مورد آرایه بگم
اگه هر زبونی دارید برنامه نویسی می کنید حتما با ارایه ها کار کنید چون باعث میشه کد نویسی دقیق تر و کم حجم تر نوشته بشه و خودش باعث سرعت بخشیدن در برنامه ها میشه

شرمنده کارم از یک جمله گذشت :evil:
Re: آرايه ها - قسمت اول
توسط rsh_eboy در 16 مرداد 1389 - 3:29 ، پست ها: 541
mortezaa نوشته:بسيار عالي بود آموزش هاي شما خيلي جالب هستش واقعا تبريک مي گم به اين هوش شما
:wink:

اين جمله من در مورد آرايه بگم
اگه هر زبوني داريد برنامه نويسي مي کنيد حتما با ارايه ها کار کنيد چون باعث ميشه کد نويسي دقيق تر و کم حجم تر نوشته بشه و خودش باعث سرعت بخشيدن در برنامه ها ميشه

شرمنده کارم از يک جمله گذشت :evil:

مرسي مرتضي جان،فقط اون تيكه اولش رو چرا اينقدر كتابي و با اغراق گفتي :mrgreen:
Re: آرايه ها - قسمت اول
توسط hasanzadeh در 19 مرداد 1389 - 16:29 ، پست ها: 37
سلام.ضمن تشکر از شما. فرض کنيم اطلاعاتمان مي خواهد در فرمي مثل فرم test.html وارد شود. و در اسکريپت test.php پردازش شود.
اين فرم چه اشکالي دارد که نمي تواند آرايه رو دريافت و پردازش کند ؟
متشکرم
test.html:
کد: انتخاب همه
<html>
<body>
<form method="POST" action="test.php">
<table border="1"  style="border-collapse: collapse" bordercolor="#111111" width="30%">
    <tr>
      <td width="33%">name</td>
      <td width="33%">job</td>
    </tr>
    <tr>
      <td width="33%"><input type="text" name="Yourname[]" size="20"></td>
      <td width="33%"><input type="text" name="job[]" size="20"></td>
    </tr>
    <tr>
      <td width="33%"><input type="text" name="Yourname[]" size="20"></td>
      <td width="33%"><input type="text" name="job[]" size="20"></td>
    </tr>
  </table>
  <p><input type="submit" value="Submit" ><input type="reset" value="Reset" ></p>
</form>

</body>

</html>

test.php
کد: انتخاب همه
<?php
$Data =array( 'name'=>($_POST['Yourname']),'job'=>($_POST['job']));
foreach($Data  as $key=>$value)
{
   echo "$key:$value";
}
?>

متشکرم
Re: آرايه ها - قسمت اول
توسط rsh_eboy در 19 مرداد 1389 - 17:35 ، پست ها: 541
سلام،خواهش مي كنم.
نيازي به ايجاد آرايه جديد نيست.
هميشه براي عيب يابي و درك بهتر تو آرايه ها از print_r استفاده مي كنم.
کد: انتخاب همه
<?php
$i = 0;
foreach($_POST['Yourname']  as $key=>$value)
echo 'The person with name: <b>'.$value.'</b> has the following job: <b>'.$_POST['job'][$i++].'</b><br>';
?>
Re: آرايه ها - قسمت اول
توسط hasanzadeh در 23 مرداد 1389 - 6:20 ، پست ها: 37
سلام و سپاس بیکران.
Re: آرايه ها - قسمت اول
توسط rsh_eboy در 5 شهريور 1389 - 18:08 ، پست ها: 541
خلاصه وار و با مثال ادامه ميدم :)
تابع unset :
حذف يك element يا كل آرايه:
مثال
کد: انتخاب همه
<?php
$test = array('site'=>'wht','lang'=>'php','music'=>'light');
//حذف فقط يك المان
unset($test['music']);
//حذف كل آرايه
unset($test);
?>

تابع array_keys:
اين تابع يك آرايه رو ميگيره و يك آرايه جديد رو كه شامل اسم كليدهاي آرايه داده شده هست رو بر مي گردونه.
به مثال توجه كنيد:
کد: انتخاب همه
<?php
$test = array('site'=>'wht','lang'=>'php','music'=>'light');
print_r(array_keys($test));
?>
//خروجي
Array
(
[0] =>  site
[1] =>  lang
[1] =>  music
)

تابع array_keys:
شمابه تابع array_keys هست با اين تفاوت كه مقادير رو بر مي گردونه نه كليدها.
کد: انتخاب همه
<?php
$test = array('site'=>'wht','lang'=>'php','music'=>'light');
print_r(array_values($test));
?>
//خروجي
Array
(
[0] =>  wht
[1] =>  php
[1] =>  light
)

صفحه اصليرايت کليکانجمن هاپروژه هاCopyright © 2005-2009 RightClick.ir All rights reserved.