পিএইচপি-তে সাহসী অ্যারেতে আইটেমটি পুশ করুন


92

আমি একটি আইটেম এইভাবে একটি মিশুক অ্যারে ধাক্কা চেষ্টা:

$new_input['name'] = array(
    'type' => 'text', 
    'label' => 'First name', 
    'show' => true, 
    'required' => true
);
array_push($options['inputs'], $new_input);

তবে 'নাম' এর পরিবর্তে কী হিসাবে একটি সংখ্যা যুক্ত হয়। এটি করার অন্য কোনও উপায় আছে?


অ্যারেটিকে অন্য অ্যারেতে ঠেকানো সম্ভব নয়। আমি এই সমস্ত অপশন চেষ্টা করেছি এবং মার্জ সবেমাত্র অ্যারে যুক্ত করেছে। আমি আমার ক্লাস দিয়ে আমার সমস্যা সমাধান করেছি।
অ্যালেক্স বেনিনকাসা সান্টোস

উত্তর:



62

পরিবর্তে array_push () , ব্যবহার array_merge ()

এটি দুটি অ্যারে মার্জ করবে এবং তাদের আইটেমগুলিকে একক অ্যারে সংযুক্ত করবে।

উদাহরণ কোড -

$existing_array = array('a'=>'b', 'b'=>'c');
$new_array = array('d'=>'e', 'f'=>'g');

$final_array=array_merge($existing_array, $new_array);

এটি চূড়ান্ত_রেরে ফলাফল অ্যারে প্রদান করে। এবং ফলাফল অ্যারে ফলাফল হবে -

array('a'=>'b', 'b'=>'c','d'=>'e', 'f'=>'g')

সম্ভাব্য সমস্যা সম্পর্কে সচেতন হতে দয়া করে এই লিঙ্কটি পর্যালোচনা করুন ।


4
আসলে এটি $ বিদ্যমান_আরে = অ্যারে ('a' => 'বি', 'বি' => 'সি') হওয়া উচিত; $ নতুন_আরে = অ্যারে ('d' => 'ই', 'চ' => 'জি'); $ ফলাফল = অ্যারে_সেমে ($ বিদ্যমান_আরে, $ নতুন_আরে);
ক্যালভিন চ্যান

4
আউটপুট সংগ্রহ করা ভাল ধারণা is আমি শুধু ধারণা দিচ্ছিলাম। শ্রদ্ধা
মুর্তজা খুরশীদ হুসেন


7

WebbieDave এর সমাধান কাজ করবে। আপনি যদি ইতিমধ্যে 'নামে' থাকতে পারে এমন কোনও কিছু ওভাররাইট করতে না চান, আপনি এই জাতীয় কিছু করতেও পারেন:

$options['inputs']['name'][] = $new_input['name'];


আপনি যদি সমস্ত কিছু মিশ্রণমূলক রাখতে না চান তবে এটি কাজ করে না, উদাহরণস্বরূপ অন্যান্য সংখ্যাযুক্ত অ্যারেটিকে না ঠেকিয়েই। নীচে
@ স্টিভেন এইচটি

4

যদি $new_inputকেবলমাত্র একটি 'নাম' উপাদান থাকতে পারে তবে আপনি ব্যবহার করতে পারেন array_merge

$new_input = array('name'=>array(), 'details'=>array());
$new_input['name'] = array('type'=>'text', 'label'=>'First name'...);
$options['inputs'] = array_merge($options['inputs'], $new_input);

3

কার্টিসের উত্তর আমার প্রয়োজনের খুব কাছাকাছি ছিল, তবে আমি এটিকে কিছুটা বদলে দিয়েছিলাম।

যেখানে তিনি ব্যবহার করেছেন:

$options['inputs']['name'][] = $new_input['name'];

আমি ব্যবহার করতাম:

$options[]['inputs']['name'] = $new_input['name'];

ডিবি থেকে একটি কোয়েরি ব্যবহার করে এখানে আমার আসল কোডটি দেওয়া হয়েছে:

while($row=mysql_fetch_array($result)){ 
    $dtlg_array[]['dt'] = $row['dt'];
    $dtlg_array[]['lat'] = $row['lat'];
    $dtlg_array[]['lng'] = $row['lng'];
}

ধন্যবাদ!


3

আমি ব্যবহার করি php5.6

কোড :

$person = ["name"=>"mohammed", "age"=>30];

$person['addr'] = "Sudan";

print_r($person) 

আউটপুট

Array( ["name"=>"mohammed", "age"=>30, "addr"=>"Sudan"] )

2

কেবল কয়েকটি স্নিপেট পরিবর্তন করুন (অ্যারে_ব্র্যাম ফাংশন ব্যবহার করুন): -

  $options['inputs']=array_merge($options['inputs'], $new_input);


1

এটি করার আরও ভাল উপায় রয়েছে:

যদি অ্যারে $ arr_options বিদ্যমান অ্যারে থাকে।

$arr_new_input['name'] = [
    'type' => 'text', 
    'label' => 'First name', 
    'show' => true, 
    'required' => true
];

$arr_options += $arr_new_input;

সতর্কতা: r arr_options অবশ্যই বিদ্যমান। যদি $ arr_options এর ইতিমধ্যে একটি ['নাম'] থাকে তবে এটি ওভাররাইট করা হবে।

আশাকরি এটা সাহায্য করবে.



0

এসোসিয়েটিভ অ্যারেটি মার্জ করতে আপনি অ্যারে_মিটার ($ অ্যারে 1, $ অ্যারে 2) ব্যবহার করতে পারেন। উদাহরণ:

$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_merge($a1,$a2));

আউটপুট:

Array ( [0] => red [1] => green [2] => blue [3] => yellow )
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.