কীভাবে পিএইচপি খালি অ্যারেতে উপাদান যুক্ত করবেন?


488

আমি যদি পিএইচপি-তে কোনও অ্যারের সংজ্ঞা দিই (যেমন আমি এর আকারটি সংজ্ঞায়িত করি না):

$cart = array();

আমি কি কেবল নিম্নলিখিতটি ব্যবহার করে এতে উপাদান যুক্ত করব?

$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;

পিএইচপি-তে অ্যারেগুলির একটি অ্যাড পদ্ধতি নেই, উদাহরণস্বরূপ cart.add(13)?

উত্তর:


802

array_pushআপনার বর্ণিত পদ্ধতি এবং উভয়ই কাজ করবে।

$cart = array();
$cart[] = 13;
$cart[] = 14;
// etc

//Above is correct. but below one is for further understanding
$cart = array();
for($i=0;$i<=5;$i++){
    $cart[] = $i;  
}
echo "<pre>";
print_r($cart);
echo "</pre>";

হিসাবে একই:

<?php
$cart = array();
array_push($cart, 13);
array_push($cart, 14);

// Or 
$cart = array();
array_push($cart, 13, 14);
?>

178
পিএইচপি ডকুমেন্টেশনে যেমন বলা হয়েছে, আপনি যদি প্রতিবারই কোনও একক উপাদানকে (কেবল একটি লুপের মতো) বা একবারে কোনও একক উপাদানকে চাপ দিচ্ছেন তবে $cart[] = 13পদ্ধতিটি ব্যবহার করা ভাল কারণ এটি একই ক্রিয়াকলাপের জন্য কম অক্ষর নয়, তবে এটি এছাড়াও একটি ফাংশন কলের কর্মক্ষমতা ওভারহেড চাপিয়ে দেয় না, যা অ্যারে_পশ () করবে। সম্পাদনা: তবে, দুর্দান্ত উত্তর কার্যকরভাবে একই, এবং বেশিরভাগ ব্যবহারগুলি এমনকি পারফরম্যান্সের পার্থক্যটি দেখতে পাবে না, তবে এই সংক্ষিপ্তসারগুলি জানতে সহায়তা করে।
ম্যাটিগাবে

67
এটি কি আমি বা $cart[]=...সিনট্যাক্সটি প্রথম নজরে ভেরিয়েবল অ্যাসাইনমেন্টের মতো দেখায় এবং অন্তর্নিহিত অ্যারে_পুষ্পের মতো নয়?
ব্র্যাড হেইন

6
এটা অবশ্যই আমার সাথে করে কেন এটি একটি অ্যাসাইনমেন্ট নয় তার ব্যাখ্যা আমি আপত্তি করব না
চুনাপাথর নারকেল

4
$ কার্ট [] = 13; দ্রুততর. কম অক্ষর আছে এবং আরও ভাল দেখাচ্ছে।
গাল ব্রাচা

19
আমি কেবলমাত্র আমার বিকল্প দৃষ্টিভঙ্গি উপস্থাপন করব যে অন্যান্য ভাষার প্রোগ্রামারদের কার্টের বাক্যবিন্যাস পড়ার পক্ষে এটি খুব বিভ্রান্তিমূলক [] = ..., আমি অনেক ভাষার সাথে অভিজ্ঞতা পেয়েছি এবং আমি এটি অনুমান করতে পারি না যে এটি কি করে।
এর্তি-ক্রিস ইলমা

75

এটি ব্যবহার না করা array_pushএবং আপনার পরামর্শ অনুযায়ী ব্যবহার করা ভাল । ফাংশনগুলি কেবল ওভারহেড যুক্ত করে।

//We don't need to define the array, but in many cases it's the best solution.
$cart = array();

//Automatic new integer key higher than the highest 
//existing integer key in the array, starts at 0.
$cart[] = 13;
$cart[] = 'text';

//Numeric key
$cart[4] = $object;

//Text key (assoc)
$cart['key'] = 'test';

11
"আপনি যদি কোনও লুপে একটি অ্যারে একাধিক মান যুক্ত করেন তবে পুনরাবৃত্তির চেয়ে অ্যারে_পশ ব্যবহার করা আরও দ্রুত [] = বিবৃতি" php.net/manual/en/function.array-push.php#84959
অলি গ্লাস

3
আপনার ব্যবহারের ক্ষেত্রে যদি একবারে কোনও একক আইটেম বা আইটেম যুক্ত হয় তবে অবশ্যই সঠিক। সমস্ত মান একই সাথে জানা থাকলে, অ্যারে নামটি পুনরায় টাইপ করা থেকে অতিরিক্ত অক্ষর যুক্ত করতে হবে এমন প্রতিটি উপর নির্ভর করে অ্যারে_পুষ্প নোটেশনটি ব্যবহার করা সবচেয়ে ভাল on ওভার মাথা। সর্বদা হিসাবে, নির্বাচন করার সময় রায় প্রয়োগ করা উচিত। ভাল উত্তর!
ম্যাটিগাবে

2
এই উত্তরটি সবচেয়ে সম্পূর্ণ।
লোকায়রে

10

আপনি অ্যারে_পুষ ব্যবহার করতে পারেন । এটি অ্যারের শেষে উপাদানগুলিকে স্ট্যাকের মতো যুক্ত করে।

আপনি এটি এইভাবে করতে পারতেন:

$cart = array(13, "foo", $obj);

10

আমার অভিজ্ঞতার ভিত্তিতে, কীগুলি গুরুত্বপূর্ণ না হলে আপনি সমাধানটি ভাল (সেরা):

$cart = [];
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;

2

মনে রাখবেন, এই পদ্ধতিটি প্রথম অ্যারেটিকে ওভাররাইট করে, তাই আপনি যখন নিশ্চিত হন কেবল তখনই ব্যবহার করুন!

$arr1 = $arr1 + $arr2;

( উত্স দেখুন )


1
ডাউন ডাউন কেন, কেউ ব্যাখ্যা করতে পারে কেন এটি খারাপ? এটা কি অনিরাপদ?
স্যান্ডি

4
@SandyBeach এটা একটা উত্তর না
Mateos

2
$cart = array();
$cart[] = 11;
$cart[] = 15;

// etc

//Above is correct. but below one is for further understanding

$cart = array();
for($i = 0; $i <= 5; $i++){
          $cart[] = $i;  

//if you write $cart = [$i]; you will only take last $i value as first element in array.

}
echo "<pre>";
print_r($cart);
echo "</pre>";

$ কার্ট [] = $ i; - কোডের সেই অংশটি অ্যারেতে উপাদান যুক্ত করে ----> $ কার্ট = [$ i]; - এটি সংকলকটি পাস করবে তবে আপনি যা চান তা পাবেন না
আনপ্লাগডডলুপ

0
$products_arr["passenger_details"]=array();
array_push($products_arr["passenger_details"],array("Name"=>"Isuru Eshan","E-Mail"=>"isuru.eshan@gmail.com"));
echo "<pre>";
echo json_encode($products_arr,JSON_PRETTY_PRINT);
echo "</pre>";

//OR

$countries = array();
$countries["DK"] = array("code"=>"DK","name"=>"Denmark","d_code"=>"+45");
$countries["DJ"] = array("code"=>"DJ","name"=>"Djibouti","d_code"=>"+253");
$countries["DM"] = array("code"=>"DM","name"=>"Dominica","d_code"=>"+1");
foreach ($countries as $country){
echo "<pre>";
echo print_r($country);
echo "</pre>";
}

-1

যখন কেউ শূন্য-ভিত্তিক এলিমেন্ট ইনডেক্সিংয়ের সাথে উপাদানগুলি যুক্ত করতে চায়, আমি অনুমান করি এটিও কাজ করবে:

// adding elements to an array with zero-based index
$matrix= array();
$matrix[count($matrix)]= 'element 1';
$matrix[count($matrix)]= 'element 2';
...
$matrix[count($matrix)]= 'element N';
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.