افزودن یا کاستن المان آرایه ها در php

تاریخ: 24 مرداد 1399

فرض کنیم یک آرایه داریم و می خواهیم یک المان به انتهای آن اضافه کنیم. به صورت زیر امکان پذیر است:

$names = [ "mohammad", "toofan" ];

//add element witout index
$names[] = "zahra";

print_r($names);
/*output:
Array
(
[0] => mohammad
[1] => toofan
[2] => zahra
)
*/

 

تابع array_push در php همین کار را برای ما می کند. یعنی می توانیم با استفاده از آن، یک المان به انتهای آرایه اضافه نماییم:

$names = [ "mohammad", "toofan" ];

//add element witout index
array_push($names, "zahra");

print_r($names);
/*output:
Array
(
[0] => mohammad
[1] => toofan
[2] => zahra
)
*/

 

*نکته: برای اضافه کردن یک المان به آرایه، روش بهینه تر استفاده از [ ] است. چون هیچ تابعی اجرا نمی شود. (البته اختلاف با array_push در حد میکروثانیه است)

تابع array_push می تواند بیش از یک مقدار داشته باشد:

$names = [ "mohammad", "toofan" ];

//add element witout index
array_push($names, "zahra", "rasool", "hashem");

print_r($names);
/*output:
Array
(
[0] => mohammad
[1] => toofan
[2] => zahra
[3] => rasool
[4] => hashem
)*/

 

حتی اگر آرایه ما یک آرایه انجمنی نیز باشد، می توانیم با استفاده از این تابع، المان های جدید به انتهای آرایه اضافه نماییم. در اینصورت کلید های آرایه ها از صفر شروع می شوند. یعنی کلید المان های جدید قطعا عددی خواهند بود.


$names = [ "name1" => "mohammad", "name2" => "toofan" ];

//add element witout index
array_push( $names, "zahra", "rasool", "hashem");

print_r($names);
/*output:
Array
(
[name1] => mohammad
[name2] => toofan
[0] => zahra
[1] => rasool
[2] => hashem
)
*/

می توانیم با استفاده از کروشه و کلید درون آن، یک عضو جدید آرایه ایجاد کنیم و یا یک عضو را به روزرسانی کنیم:


$names = [ "name1" => "mohammad", "name2" => "toofan" ];

//add element with key
$names["name3"] = "zahra";

print_r($names);
/*output:
Array
(
[name1] => mohammad
[name2] => toofan
[name3] => zahra //added
)
*/

$names["name1"] = "hashem";

print_r($names);
/*output:
Array
(
[name1] => hashem //changed
[name2] => toofan
[name3] => zahra
)
*/

 

نکته مهمی که وجود دارد این است که آرایه ی انجمنی را با ایندکس عددی نمی شود آپدیت کرد ولی آرایه ایندکس امکان پذیر است:


$names = [ "name1" => "mohammad", "name2" => "toofan" ];

$names["name1"] = "hashem";
print_r($names);
/*output:
Array
(
[name1] => hashem
[name2] => toofan
[name3] => zahra
)
*/

$names[1] = "hashem";
print_r($names);
/*output:
Array
(
[name1] => hashem
[name2] => toofan
[name3] => zahra
[1] => hashem
)
*/

تابع array_push تعداد کل المان ها (قبلی ها و جدید) را بر می گرداند. (طول آرایه نهایی)

 


$x = ["mohammad", "hashem", "zahra"];

echo array_push( $x, "rasool", "toofan" ); //output: 5

echo count($x); //output: 5

دیدگاهتان را بنویسید

طراحی افزونه وردپرس