شنبه ۲۲ شهریور ۱۴۰۴

Saturday, September 13, 2025 GMT +3:30

آرایه (Array) در برنامه نویسی PHP

php-array

در مباحث گذشته از بخش آموزش مقدماتی PHP با نحوه کار حلقه foreach آشنا شدیم و گفتیم که این نوع حلقه ها برای مدیریت آرایه (Array) کاربرد دارد به طور مثال مقادیری که از فرم های وب با قابلیت انتخاب چندگانه (multiple) ارسال می شوند را می توانیم در حلقه foreach مورد به مورد بررسی و به پارامترهای آن دسترسی داشته باشیم که این ساز و کار به کمک آرایه محقق می شود، به هر صورت این بار و در ادامه آموزش های مقدماتی می خواهیم دانشمان را در برنامه نویسی PHP کمی بیشتر توسعه داده و مبحث آرایه ها را با هم بررسی کنیم، فراگیری کامل و درست این مبحث می تواند درک ما را از نحوه کار کدهای PHP و ساختار ببرنامه های وب بسیار ارتقاء داده و در خیلی از پروژه ها راهگشا باشد.

آرایه (Array) چیست؟


آرایه (Array) در برنامه نویسی به ساختار داده ای به شکل متغیر یا آبجکت گفته می شود که خود شامل عناصر (Elements) زیرمجموعه به شکل لیست است که می توانیم با شماره عددی خودکار (Index) یا کلید (Key) اختصاصی به مقدار (Value) آنها دسترسی داشته باشیم، بنابراین در مورد آرایه ها با چند اصطلاح زیر روبرو خواهیم شد:
- Array: آرایه ای که تعریف می کنیم.
- Element: به هر عضو در آرایه عنصر یا Element گفته می شود.
- Index: به موقعیت عددی خودکار عنصر در فهرست عناصر آرایه ایندکس گفته می شود و با آن به مقادیر عنصر مورد نظر دسترسی پیدا می کنیم.
-Key: کلید اختصاصی که به صورت غیرخودکار تعیین می شود و با آن به مقادیر عنصر مورد نظر دسترسی پیدا می کنیم.
Value: مقداری که هر عنصر آرایه در خود نگهداری می کند.
بر این اساس اگر آرایه ما در PHP به شکل نمونه زیر باشد:
<?php
$array = array('HTML', 'CSS', 'JS', 'PHP');
?>
در این ساختار عبارت array اول متغیر آرایه، array دوم دستور تعریف آرایه و عبارت های رشته ای HTML، CSS، JS و PHP که با کاراکتر کاما (,) از هم جدا شده اند هرکدام عناصر آرایه هستند، ایندکس ها در این شیوه به صورت خودکار و از 0 شمارش می شوند (آرایه در زبان PHP به صورت Zero-based است) که در نمونه کد قابل روئیت نیست اما در هنگام دسترسی به مقادیر عناصر به کار می آید، به طور مثال اگر بخواهیم مقادیر Index 3 آرایه بالا را استخراج و در خروجی چاپ کنیم می توانیم با کد زیر این کار را انجام دهیم:
<?php
$array = array('HTML', 'CSS', 'JS', 'PHP');
echo $array[3];
?>
که نتیجه عبارت
PHP
خواهد بود، دقت کنیم ایندکس و کلید دو مفهوم مشابه هستند با این تفاوت که ایندکس (Index) در حالتی استفاده می شود که شماره گذاری موقعیت عناصر به صورت خودکار و عددی (از 0) توسط مفسر انجام شده باشد اما کلید (Key) زمانی است که کلیدواژه دسترسی به عنصر را به صورت عددی یا با در نظر گرفتن برچسب متنی خودمان تعیین می کنیم، به طور مثال در نمونه کد زیر استفاده از ایندکس 3 خطا خواهد داشت:
<?php
$array = array(0 => 'HTML', 1 => 'CSS', 2 => 'JS', 5 => 'PHP');
echo $array[3];
?>
کد بالا خطای
Notice: Undefined offset: 3
را چاپ می کند چون ایندکس 3 در آرایه وجود ندارد و برای چاپ عبارت PHP باید از کلید 5 استفاده کنیم:
echo $array[5];
در واقع می توان گفت زمانی که به صورت دستی شماره ایندکس عناصر آرایه را تغییر می دهیم اصطلاح کلید (Key) جانشین فهرست (Index) می شود، به طور خلاصه فهرست (Index) شماره گذاری خودکار و کلید (Key) می تواند مقدار عددی یا متنی باشد که هر دو اصطلاح برای دسترسی به مقدار (Value) عناصر آرایه کاربرد دارند.

شیوه های مختلف تعریف آرایه در PHP


آرایه در PHP مشابه دیگر زبان مرتبط با وب یعنی جاوا اسکریپت به دو شیوه زیر قابل تعریف است:
- تعریف آرایه با عبارت دستوری array، به طور مثال:
<?php
$array = array(100, 200, 300);
?>
- تعریف آرایه با کاراکتر قلاب []، به طور مثال:
<?php
$array = [100, 200, 300];
?>
نتیجه هر دو روش بالا از نظر فنی یکسان است و صرفا در نحوه تعریف و Syntax تفاوت وجود دارد، در ادامه هر دو روش بالا را به تفصیل بررسی می کنیم.

تعریف آرایه در PHP با عبارت دستوری array


اولین روش تعریف آرایه در PHP استفاده از عبارت دستوری array است، در این حالت کلیدها و مقادیر (Key/Value) را می توانیم با علامت پیکان (<=) به صورت جفتی در نظر بگیریم یا اینکه صرفا مقادیر آرایه را با کاراکتر کاما (,) از هم متمایز کرده و ایندکس گذاری خودکار را به مفسر PHP واگذار کنیم، به طور مثال:
<?php
$array_1 = array('A' => 100, 'B' => 200, 'C' => 300);
echo $array_1['B'] . '<br>';
$array_2 = array(100, 200, 300);
echo $array_2[2];
?>
خروجی نمونه کد بالا به صورت زیر خواهد بود:
200
300
در آرایه اول برچسب مقادیر به صورت سفارشی و با کاراکترهای متنی (A,B,C) انجام شده است که در این حالت از اصطلاح کلید (Key) استفاده می کنیم، به فرض مقادیر کلید A در آرایه array_1 برابر با 100 است، اما در آرایه دوم شماره گذاری به صورت خودکار و از 0 انجام می شود (اشاره شد که آرایه ها در PHP از 0 شماره گذاری می شوند و به اصطلاح Zero-based هستند)، در این حالت از اصطلاح ایندکس (Index) استفاده می کنیم به فرض مقادیر ایندکس 1 آرایه array_2 برابر با 200 است.
نکته: زبان برنامه نویسی PHP برخلاف جاوا اسکریپت (JavaScript) به صورت ذاتی از آرایه های با کلید متنی (Associative Array) پشتیبانی می کند و نیازی به تعریف آبجکت ثابت (Literal Object) جداگانه نیست.

تعریف آرایه در PHP با کاراکتر قلاب []


شیوه دوم تعریف آرایه که به حالت مختصرنویسی نیز معروف است استفاده از کاراکتر قلاب [] (یا Square Bracket) است که در این حالت هم می توانیم با یا بدون استفاده از کلیدهای سفارشی آرایه مورد نظر را تعریف کنیم، به طور مثال:
<?php
$array_1 = ['A' => 100, 'B' => 200, 'C' => 300];
echo $array_1['B'] . '<br>';
$array_2 = [100, 200, 300];
echo $array_2[2];
?>
خروجی نمونه کد بالا نیز به صورت زیر خواهد بود:
200
300
اینکه در کدنویسی از چه شکلی از تعریف آرایه استفاده کنیم بستگی به موقعیت و گاهی سلیقه برنامه نویس دارد، روش array قدیمی تر است و از زمان پیدایش PHP معرفی شده است اما روش قلاب جدیدتر است و از نسخه 5.4 به مفسر PHP اضافه شده است، در هر صورت ممکن است در موارد محدودی کدنویسی برخی برنامه ها صرفا از یک روش خاص پشتیبانی کنند.

تعریف آرایه های دو یا چندبعدی (Multidimensional) در PHP


استفاده از آرایه ها در کدنویسی برنامه های وب به حالت ساده و تک بعدی محدود نمی شود، گاهی مواقع مقدار هر کلید می تواند خود یک آرایه (آرایه آرایه یا Array of Array) باشد و این شیوه ممکن است تا چند سطح عمق پیدا کند که در این حالت از اصطلاح آرایه چند بعدی (Multidimensional) استفاده می کنیم، اصول تعریف و دسترسی به عناصر آرایه در این شیوه ها نیز مشابه با حالت تک بعدی است که در ادامه با چند مثال بررسی می کنیم.
- مثالی از آرایه دوبعدی در PHP:
<?php
$array_1 = ['A' => array(10, 20, 30), 'B' => array(40, 50, 60), 'C' => array(70, 80, 90)];
echo $array_1['B'][1];
?>
خروجی نمونه کد بالا به صورت زیر خواهد بود:
50
- مثالی از آرایه چندبعدی در PHP:
<?php
$array_1 = [array([10, 20, 30], [40, 50, 60]), 56, 78];
echo $array_1[0][0][0];
echo '<br>';
echo $array_1[1];
?>
خروجی نمونه کد بالا به صورت نمونه زیر خواهد بود:
<?php
$array_1 = [array([10, 20, 30], [40, 50, 60]), 56, 78];
echo $array_1[0][0][0];
echo '<br>';
echo $array_1[1];
?>
در این نمونه کد برای تعریف آرایه و عناصر زیرمجموعه آن از روش های مختلف (عبارت دستوری array و کاراکتر قلاب []) استفاده کرده ایم.
نکته: گفتیم که PHP به صورت ذاتی از آرایه هایی که کلید متنی یا سفارشی داشته باشند (Associative Array) پشتیبانی می کند.

افزودن یا حذف عنصر آرایه در PHP


در مثال های بالا با نحوه دسترسی به عناصر آرایه به روش ایندکس (Index) و کلید (Key) آشنا شدیم، اما اگر بخواهیم یک عنصر را در مرحله دیگری از برنامه به آرایه اضافه یا برعکس اگر بخواهیم عنصری را از آرایه حذف کنیم چاره چیست؟
در اغلب زبان های برنامه نویسی برای اینگونه موارد توابع اختصاصی جداگانه ای تعریف می شود و ما هم در ادامه این سری از آموزش ها توابع کار با آرایه در PHP را بررسی خواهیم کرد منتها حذف و اضافه ساده نیازی به استفاده از تابع اختصاصی ندارد و به صورت زیر انجام می شود.
برای افزودن یک عنصر به آرایه بعد از مرحله تعریف کافی است از روش نمونه زیر پیروی کنیم:
<?php
$array_1 = ['A', 'B', 'C'];
$array_1[] = 'D';
echo $array_1[3];
?>
خروجی نمونه کد بالا به صورت زیر خواهد بود:
D
اگر با دستور print_r از آرایه array_1 خروجی بگیریم خواهیم داشت:
Array ( [0] => A [1] => B [2] => C [3] => D )
همان طور که مشخص است از شیوه شماره گذاری خودکار (Index) در این حالت استفاده شده است، یک مثال از شیوه اختصاص کلید (Key) سفارشی:
<?php
$array_1 = [22 => 'A', 13 => 'B', 57 => 'C'];
$array_1['14'] = 'D';
echo $array_1['14'];
?>
خروجی نمونه کد بالا به صورت زیر خواهد بود:
D
اگر با دستور print_r از آرایه array_1 خروجی بگیریم خواهیم داشت:
Array ( [22] => A [13] => B [57] => C [14] => D )
در حالت کلیدهای سفارشی رعایت ترتیب کلیدها اهمیتی ندارد.
برای حذف یک عنصر از آرایه نیز تابع عمومی unset به روش زیر قابل استفاده است:
<?php
$array_1 = [22 => 'A', 13 => 'B', 57 => 'C'];
unset($array_1[22]);
print_r($array_1);
?>
نتیجه اجرای نمونه کد بالا به صورت زیر خواهد بود:
Array ( [13] => B [57] => C )
برای حذف عنصر مورد نظر از آرایه کافی است در تابع unset آرایه را به همراه کلید متناظر به عنوان آرگیومنت تنظیم کنیم، همین روش برای حالت ایندکس خودکار نیز کاربرد خواهد داشت، مثال:
<?php
$array_1 = ['A', 'B', 'C'];
unset($array_1[0]);
print_r($array_1);
?>
نتیجه اجرای نمونه کد بالا به صورت زیر خواهد بود:
Array ( [1] => B [2] => C )
نکته مهم اینکه با حذف عنصر از آرایه با تابع unset چینش کلیدها تغییری نمی کند.

استفاده از آرایه ها در حلقه foreach


در مفسر PHP حلقه foreach به صورت ذاتی و پیش فرض برای دسترسی به عناصر آرایه ها در دور تکرار تعریف شده است که در آموزش های مرتبط با انواع حلقه (Loop) به اختصار در این خصوص صحبت کردیم، با حلقه foreach می توانیم به فرض اطلاعات ارسال شده از فرم های HTML که فیلدهایی با قابلیت چندگانه (Multiple) دارند را تجزیه کرده و آیتم به آیتم عناصر آرایه ارسالی را مورد پردازش قرار دهیم، به طور مثال اگر فرم HTML زیر را داشته باشیم:
<form action="#" method="post">
<label for="country">انتخاب کشور:</label>
<select name="country[]" id="country" multiple="multiple">
<option value="Iran">Iran</option>
<option value="Germany">Germany</option>
<option value="Japan">Japan</option>
</select>
<input type="submit" value="ارسال">
</form>
در این فرم فیلد انتخاب شونده با نام فرضی country قابلیت چندگانه (Multiple) دارد و کاربر می تواند با نگه داشتن کلید Ctrl از بین option های موجود یک یا چند مورد را انتخاب و ارسال کند، با دقت در کدنویسی فرم HTML مشخص است که کاراکتر قلاب [] و عبارت multiple به فیلد country اضافه شده اند، در این حالت اطلاعات فیلد مورد نظر به صورت آرایه به سرور ارسال می شود اما در سمت سرور این آرایه را به چه نحوی مدیریت و به عناصر آن دسترسی پیدا کنیم؟
پاسخ حلقه foreach است به طور مثال:
<?php
@$country = $_POST['country'];
foreach($country as $key => $value){
    echo $value . '<br>';
}
?>
به این صورت اگر کاربر تمام موارد را انتخاب کند خروجی به شکل زیر خواهد بود:
Iran
Germany
Japan
با حلقه for هم می توانیم به عناصر آرایه در دور تکرار دسترسی داشته باشیم اما حلقه for به طور ذاتی برای کار با آرایه ها تعریف نشده و باید هنگام گرفتن خروجی ایندکس/کلید مورد نظر را تعیین کنیم، به طور مثال:
<?php
@$country = $_POST['country'];
$count = count($country);
for($i = 0; $i < $count; $i++){
    echo $country[$i] . '<br>';
}
?>
کد بالا خروجی مشابه حلقه foreach خواهد داشت.
توجه کنیم در حالت for ایندکس/کلید آرایه به صورت داینامیک و در هر دور حلقه متغیر است، در واقع ایندکس/کلید همان مقادیر متغیر i است که در هر دور حلقه یک واحد افزایش می یابد و حلقه نیز تا جایی که مقادیر i از تعداد عناصر آرایه که با تابع count محاسبه شده کوچکتر باشد ادامه می یابد.
در آموزش های بعدی با توابع کار با آرایه (Array Functions) که با تنوع  و تعداد زیاد در مفسر PHP وجود دارند آشنا خواهیم شد.
دسته بندی: آموزش مقدماتی » PHP
related مطالب بیشتر:
آموزش برنامه نویسی وب با PHP
تعریف و استفاده از متغیر (Variable) در PHP
توابع کار با آرایه در PHP - بخش سوم
عملگرها (Operators) در PHP
توابع کار با آرایه در PHP - بخش اول
دیدگاه
more ۵۲ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
amin
۱۴:۰۹ ۱۳۹۴/۰۴/۰۷
سلام و خسته بناشید خدمت شما
وقتی میخوام از شرط if در ارایه به شکل زیر استفاده کنم دستور if نادیده گرفته میشه
لطفا راهنمایی کنید مشکل کجاست
    global $db;
$tmp = Array();
$db->sql_query("SELECT * FROM `category` WHERE `id`= '5' ");
while($top_sd = $db->sql_fetcharray())
{
$tmp[] = $top_sd;
}
foreach($tmp AS $top_sd)
{

if($db->sql_query("SELECT * FROM `posts` WHERE `ID`= '".$top_sd['id']."' AND `name` = '".$top_sd['name']."' ") > 0){
$top = $db->sql_fetcharray();
$name = $top['name'];
echo $name;
}else{ }
}
باتشکر
باید ببینید قسمت زیر چه نتیجه ای برمیگرداند:
$db->sql_query("SELECT * FROM  `posts` WHERE `ID`= '".$top_sd['id']."' AND `name` = '".$top_sd['name']."' ")
قاعدتا این نتیجه باید یک عدد باشد، در غیر این صورت در این قسمت اشکالی وجود دارد (البته ظاهرا این قسمت باید یک آرایه برگرداند و لذا مقایسه با صفر به نظر صحیح نیست).
نکته: برای تست و خطایابی می توانید دستورات بالا را به یک متغیر نسبت داده و با echo از مقدار متغیر خروجی بگیرید.
۱۵:۴۸ ۱۳۹۴/۰۳/۱۸
با سلام و تشکر از سایت خوبتون.
می خواستم بدونم اگر بخوایم یه سری textbox رو به این روش در دیتابیس sql ثبت کنیم چه میشه کرد؟
کدی که مد نظرمه اینه که اول یک مقداری از یک تکست باکس میگیریم و بعد با حلقه while به اندازۀ اون، در یک صفحۀ جدید، تکست باکس چاپ می کنیم. اسم تکست باکس رو هم به صورت متغیر تعریف می کنیم که اسم ها یکی نباشند. حالا می خواهم تمامی مقادیر تکست باکس های تولید شده توسط حلقۀ while جمع آوری بشه و در SQL ثبت بشه. تنها مشکلم با گرفتن اطلاعات از این فرم هاست.
ممنون می شم راهنماییم کنید.
کد:
حذف شد
برای این کار باید از input چندگانه (multiple) استفاده کنید (در این حالت تمام فیلدها یک نام دارند + علامت [])، به طور مثال:
<input type="text"  id="user-1" name="user[]" value="">
<input type="text" id="user-2" name="user[]" value="">
<input type="text" id="user-3" name="user[]" value="">
و در سمت سرور پارامترها به صورت آرایه از طریق متد POST قابل دریافت و استفاده هستند، به فرض:
<?php
$my_array = $_POST['user'];
$loop = 1;
foreach($my_array as $key => $value){
echo 'input-'.$loop.' => '.$value.'<br>';
$loop++;
}
?>
محمد
۱۸:۳۶ ۱۳۹۴/۰۲/۲۹
خیلی ممنون بابت پاسخگوییتون کدی که من نوشتم به این شکل زیر هست اما میخوام به اندازه تمام رکوردهایی که توی دیتابیس دارم n تا شی ساخته بشه که سه تا پارامتر میفرسه به کلاس خودش که کلاس چیز خاصی جز سه تا متغیر و یک سازنده نداره اما مشکلی که هست توی کد من فقط داره یک شی ساخته میشه و نمیدونم باید چطوری تعداد اشیا رو داینامیک کنم
$sq = mysql_query("SELECT * FROM product");
require_once('../class/Product.php');
while($res = mysql_fetch_assoc($sq)){
$id = $res['product_id'];
$name = $res['product_name'];
$price = $res['price'];
$products = new Product($id,$name,$price);
}
دقیقا مشخص نیست هدفتان از این کار چیست، اما می توانید ساختار کدهایتان را اصولی تر طراحی کنید، ایجاد و فراخوانی کلاس به این صورت صحیح نیست، هدف از کلاس معمولا ایجاد حداقلی و فراخوانی به دفعات زیاد با پارامترهای متفاوت است، نه ایجاد چندین کلاس مشابه مختلف، لذا می توانید نتایج را به صورت آرایه در حلقه ایجاد کنید و در نهایت در بیرون از حلقه، پارامترها را به صورت آرایه به کلاس خود بفرستید، در کلاس با حلقه های for و... می توانید عملیات مورد نظر را روی عناصر آرایه انجام دهید (قاعدتا نیازمند تسلط بر بحث آرایه ها و همچنین برنامه نویسی شی گراء در PHP است).
<?php
class Product{
public $my_array;

public function process(){
for($i = 0; $i < count($this->my_array); $i++){
echo $this->my_array[$i]['id'];
echo $this->my_array[$i]['name'];
}
}
}

@$array = array();
$loop = 0;
while($res = mysql_fetch_assoc($sq)){
$array[$loop]['id'] = $res['product_id'];
$array[$loop]['name'] = $res['product_name'];
$loop++;
}

$products = new Product();
$products->my_array = $array;
$products->process();
?>
محمد
۱۸:۱۲ ۱۳۹۴/۰۲/۲۸
سلام خسته نباشید میخواستم بدونم چطور میشه در آرایه یک شی قرار داد و همچنین تعداد شی داخل این آرایه وابسته به تعداد رکوردهای موجود در دیتابیس باشه؟
شی نیز مانند یک متغیر عادی می تواند به عنوان کلید یا مقدار آرایه قرار گیرد، به عنوان مثال:
<?php
class Test{
public $my_str;
public $my_int;
public $my_array;

public function example(){
$this->my_array = array(
0 => $this->my_str,
1 => $this->my_int
);
}
}
?>
در مورد بخش دوم سوال باید آرایه خود را به صورت داینامیک و در حلقه while (در هنگام استخراج اطلاعات دیتابیس) بسازید، یک مثال ساده صرفا جهت راهنمایی (در حلقه for):
@$my_array = array();
for ($i = 0; $i < 5; $i++){
$my_array[] = array($i);
}
مومني موگويي
۰۵:۰۸ ۱۳۹۲/۰۸/۱۱
سلام بسيار ممنون از لطفتون
محمد
۱۰:۰۰ ۱۳۹۲/۰۸/۱۰
ببخشید مزاحم میشم
من می خواستم یک آرایه ی دو بعدی را مقدار دهی کنم اما روش آن به ذهنم نمی رسد در اینترنت فقط مثال هایی از آرایه های انجمنی به صورت دستی وجود دارد مشکل من خروجی گرفتن نیست فقط نمی دانم چه طور مقدار دهی کنم البته تا حد زیادی کد را نوشته ام و فقط یک مشکل کوچک وجود دارد
کد من:
<?php
$student = array
(
array("2",20),
array("3",17),
array("8",19)
);

echo "student id:".$student[0][0]." student number:".$student[0][1]."<br>";
echo "student id:".$student[1][0]." student number:".$student[1][1]."<br>";
echo "student id:".$student[2][0]." student number:".$student[2][1]."<br>";
///////////////////////////////////////////////////////////////////////////
for($i=0;$i<=10;$i++)
{
for($j=0;$j<=1;$j++)
{
$student[$i][$j]=1;
}
}
echo "student id:".$student[0][0]." student number:".$student[0][1]."<br>";
echo "student id:".$student[1][0]." student number:".$student[1][1]."<br>";
echo "student id:".$student[2][0]." student number:".$student[2][1]."<br>";
?>
من در قسمت دوم کد توسط دو تا حلقه ای که گذاشتم تونستم پیمایش کاملی داشته باشم اما نمی توانم برای هر خانه از آرایه یک مقدار به خصوص وارد کنم و خروجی آرایه ی دوم مثلاً 1 میشه
می خواستم کمی راهنمایی کنید
با آرزوی موفقیت برای شما دوست عزیر
متشکرم و خداحافط
حلقه ای که نوشتید به صورتی عمل می کند که value برای تمام کلیدها برابر 1 می شود، آرایه اصلی:
Array
(
[0] => Array
(
[0] => 2
[1] => 20
)

[1] => Array
(
[0] => 3
[1] => 17
)

[2] => Array
(
[0] => 8
[1] => 19
)

)
چند دور از حلقه شما:
دور اول:
for($i=0;$i<=10;$i++){
for($j=0;$j<=1;$j++){
$student[0][0]=1;
$student[0][1]=1;
}
}
دور دوم:
for($i=1;$i<=10;$i++){
for($j=0;$j<=1;$j++){
$student[1][0]=1;
$student[1][1]=1;
}
}
و تا 10 به همین منوال خواهد بود.
مومني موگويي
۰۴:۲۸ ۱۳۹۲/۰۸/۰۶
سلام خسته نباشيد بنده ميخواستم كاربرد تابع str_word_count رو بدونم البته بنده مي دونم كه اين تابع تعداد كلمات يك رشته برميگردونه، چيزي كه مي خواستم بدونم اينكه توي كتاب خوندم كه سه تا آرگومنت دريافت مي كنه مي خواستم اين نوع كاربردشو با مثال بدونم با تشكر خسته نباشيد از اينكه به سوالاتمون جواب ميدين يك دنيا ممنون
- آرگیومنت اول این تابع همان رشته ای است که بررسی می شود.
- آرگیومنت دوم با اعداد 0، 1 و 2 تعیین کننده نوع و شمول خروجی تابع است:
0 نتیجه تابع را به صورت عددی (تعداد کلمات) بر می گرداند.
1 نتیجه را به صورت آرایه (شروع کلیدها از صفر و مقادیر شامل کلمات) بر می گرداند.
2 نتیجه را به صورت آرایه (شمارش کلید ها بر اساس موقعیت کلمه در رشته و مقادیر شامل کلمات) بر می گرداند.
- آرگیومنت سوم کاراکترهای دلخواهی است که اگر ست شوند، جزئی از کلمه به حساب می آیند و در خروجی دیده می شوند.
مثال:
<?php
$str = 'Hello World! Welcome to PHP Learning...';
echo str_word_count($str, 0);
echo '<br>';
print_r(str_word_count($str, 1));
echo '<br>';
print_r(str_word_count($str, 2, '!.'));
?>
خروجی:
6
Array ( [0] => Hello [1] => World [2] => Welcome [3] => to [4] => PHP [5] => Learning )
Array ( [0] => Hello [6] => World! [13] => Welcome [21] => to [24] => PHP [28] => Learning... )
مومني موگويي
۱۳:۳۳ ۱۳۹۲/۰۷/۲۳
سلام خسته نباشيد ببخشيد كاربرد @ تو php چيه ممنون از جوابتون و لطفتون
در صورت استفاده در ابتدای متغیرها، به معنی نادیده گرفتن خطاها یا هشدارهایی است که از آن متغیر ممکن است گرفته شود (معمولا در حالت آگاهانه از آن استفاده می شود، به فرض برای متغیری که بعد از ارسال فرم مقداردهی می شود، جهت جلوگیری از پیام Notice: Undefined Variable).
مومني موگويي
۱۵:۴۵ ۱۳۹۲/۰۷/۲۲
سلام ممنون
مومني موگويي
۱۹:۵۳ ۱۳۹۲/۰۷/۲۰
سلام خسته نباشيد ميشه تابع
error_log()
را با مثال توضيح بدين
تابع error_log برای مدیریت خطاها به طور مثال برای ذخیره در یک فایل log مربوط به error ها یا ارسال آن از طریق ایمیل است، معمولا این تابع دو یا سه آرگومان دارد که برای تنظیمات مختلف به کار می رود، به فرض اگر بخواهیم خطای رخ داده در فایل ذخیره شود:
if($error == true){
error_log("Error-Code:222!", 0);
}
یا اگر بخواهیم خطا را به ایمیل ارسال کنیم:
error_log("Error!", 1,  "admin@example.com");
اطلاعات بیشتر:
http://php.net/manual/en/function.error-log.php
مومني موگويي
۰۹:۰۴ ۱۳۹۲/۰۶/۲۹
ممنون از لطفتون دوست گرامي
مومني موگويي
۱۳:۰۴ ۱۳۹۲/۰۶/۲۸
سلام دوست عزيز بنده يه سوال ديگه هم دارم مهمترين و كاربردي ترين مباحث تو php چه مباحثي هستند كه بنده اونا رو بيشتر بخونم آيا راجع به امنيت وب كتاب جامع و خوبي سراغ دارين اگر امكان داره ميشه معرفي كنيد با تشكر موفق باشيد انشالله
PHP یک زبان برنامه نویسی است و یک زبان برنامه نویسی مجموعه ای از دستورات و مباحث مختلف را دربر می گیرد که برای حرفه ای بودن، تسلط بر بیشتر آنها لازم است، به هر صورت مباحث مهم تر در PHP را می توان بحث کار با آرایه ها و توابع مربوط به آرایه، توابع مربوط به مدیریت فایل، حلقه ها، روش های مختلف اتصال به دیتابیس، کار با تاریخ و زمان و نهایتا شی گرائی نام برد.
در مورد معرفی کتاب، متاسفانه منبع کاملی در این زمینه مد نظر نداریم، باید (در وب یا در بازار) جستجو کنید.
مومني موگويي
۱۲:۵۶ ۱۳۹۲/۰۶/۲۸
ممنون از لطفتون
مومني موگويي
۱۱:۴۱ ۱۳۹۲/۰۶/۲۷
سلام خسته نباشيد ميشه راجع به تابع each تو php يه مقدار توضيح بدين، اگر امكانش هست همراه با مثال ممنون
تابع each یکی از توابع کار با آرایه ها در PHP است، کارکرد آن به این نحو است که کلید و مقدار یک آرایه را (شروع از ابتدا و اولین کلید) استخراج کرده و نتیجه را به صورت یک آرایه با چهار کلید، خروجی می دهد، دو کلید اول این آرایه خروجی، با مقدار و دو کلید دیگر با کلید آرایه اصلی پر می شوند، مثال:
<?php
$main_array = array('Hello', 'World!');
$each_array = each($main_array);
print_r($each_array);
?>
خروجی:
Array
(
[1] => Hello
[value] => Hello
[0] => 0
[key] => 0
)
این تابع معمولا در کنار list و برای پیمودن یک آرایه و استخراج کلید و مقدار استفاده می شود (در کل تابع پر کاربردی نیست)، مثال:
<?php
$main_array = array('Hello', 'World!');
while(list($key, $value) = each($main_array)){
echo $key .' - '. $value .'<br>';
}
?>
خروجی:
0 - Hello<br>1 - World!<br>
۱۶:۱۹ ۱۳۹۲/۰۵/۱۶
دوباره سلام دوست عزیز امیدوارم حالت خوب باشه یه سوالی داشتم
<?php
@$name = $_POST['name'];
if ($name) {
echo "$name خوش آمدید";
}
else {
echo "مهمان خوش آمدید";
}
?>
می خوام بجای خوش امدید هر چی که تو اینپوت تایپ کنی بعد دکمه رو بزنی متن پیام به صورت جاوا اسکریپت ظاهر بشه تو پنجره ی مرورگر
مثلا میخوام
echo "$name خوش آمدید";
این رو تو پنجره ی مرورگر ظاهر بشه به صورت جاوا اسکریپت می خوام بدونم پی اچ پی و جاوا اسکریپت چطور میشه با هم مخلوط کرد ممنون میشم جوابم رو بدید
PHP یک زبان HTML embedded است، یعنی می توانید دستورات آن را با سایر تگ های HTML در یک فایل داشته باشید، لذا:
<?php
@$name = $_POST['name'];
$message = NULL;
if ($name) {
$message = "$name خوش آمدید";
}
else {
$message = "مهمان خوش آمدید";
}
?>
<script type="text/javascript">
alert(<?php echo $message?>);
</script>
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
7 × 8
20 × 20
=