+1 امتیاز
قبل در برنامه نویسی توسط (106 امتیاز)
آرایه های Numerical Index و Associative Index در php کارشون چیه و چه تفاوتی با یکدیگر دارند؟

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)

در زبان برنامه نویسی PHP برای تعریف آرایه یک بعدی دو راه مختلف وجود دارد:

1- Numeric array یا آرایه عددی: برای دسترسی به عناصر ذخیره شده در این نوع آرایه باید از اندیس عددی استفاده کرد که از صفر شروع می شود، در مثال زیر آرایه car به دو صورت می تواند تعریف شود:

$cars=array("Volvo","BMW","Toyota");

یا

$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota"; 

و برای دسترسی به عناصر ذخیره شده باید از اندیس صفر شروع کرد:

echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";

2- Associative array: آرایه های associative کاملا شبیه آرایه های عددی می باشند فقط در آرایه های associative بصورت اجباری اندیس مقادیر ذخیره شده عددی نیست و می توان برای هر مقدار یک اندیس از نوع String تعریف کرد، در مثال زیر آرایه age به دو صورت می تواند تعریف شود:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

یا

$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43"; 

و برای دسترسی به عناصر ذخیره شده باید از اندیس String هر مقدار استفاده کرد:

echo "Peter is " . $age['Peter'] . " years old.";
قبل توسط (106 امتیاز)
ویرایش شده قبل توسط
پس ینی numerical array فقط ایندکس هایی از نوع int قبول میکنه ولی associative array هم میتونه integer باشه هم string?
و مورد بعد اینکه در associative array مقداری که به ایندکس دادید از نوع integer هست،آیا باید داخل quotation marks باشه؟؟؟
قبل توسط (1.1هزار امتیاز)
نه نمی تونید، استفاده از اندیس عددی برای آرایه Associative کار نمی کند و استفاده از اندیس String برای آرایه عددی کار نمی کند.
قبل توسط (106 امتیاز)
ولی برای آرایه Associative اندیس عددی کار کرد!!!!!!!!!
قبل توسط (1.1هزار امتیاز)
فقط در حالتی که آرایه را بصورت ترکیبی تعریف کنید یعنی بعضی عناصر Associative باشند و بعضی خیر می توان به آن عناصری که Associative نیستند با استفاده از ایندکس دسترسی داشت.
قبل توسط (106 امتیاز)
منظورتون از ترکیبی مثلاً اینه:
;(arr = array("name" => "ali"  , 10 => 20$
یه سوال دیگه هم پرسیده بودم بالاتر:
در associative array مقداری که به ایندکس دادید از نوع integer هست،آیا باید داخل quotation marks باشه؟مگه فقط رشته قرار نمیگیره؟
قبل توسط (1.1هزار امتیاز)
منظورم از ترکیبی اینه: $age=array("35","Ben"=>"37","Joe"=>"43");
در آرایه Associative مقدار ایندکس می تونه String  نباشه.
قبل توسط (106 امتیاز)
ولی اون کدی که من نوشتمو بهم خروجی داد،ینی هم ایندکس هم مقدارش از نوع integer باشن
قبل توسط (1.1هزار امتیاز)
+1
توی نظر قبلی خط دوم گفتم که میشه.

سوالات مشابه

0 امتیاز
1 پاسخ 463 بازدید
+1 امتیاز
1 پاسخ 458 بازدید
0 امتیاز
1 پاسخ 907 بازدید
0 امتیاز
2 پاسخ 755 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط مسافر (922 امتیاز)
0 امتیاز
1 پاسخ 626 بازدید
+1 امتیاز
1 پاسخ 541 بازدید
0 امتیاز
1 پاسخ 464 بازدید
...