আক্ষরিক চাবি দিয়ে পিএইচপি সাহসী অ্যারে প্রিপেন্ড করে?


112

আক্ষরিক কী => মান জোড়ের সাথে কোনও এসোসিয়েটিভ অ্যারে প্রিপেন্ড করা কি সম্ভব? আমি জানি যে অ্যারে_আনশিফ্ট () সংখ্যাসূচক কীগুলির সাথে কাজ করে তবে আমি এমন কিছু প্রত্যাশা করছি যা আক্ষরিক কীগুলির সাথে কাজ করবে।

উদাহরণ হিসাবে আমি নিম্নলিখিতগুলি করতে চাই:

$array1 = array('fruit3'=>'apple', 'fruit4'=>'orange');
$array2 = array('fruit1'=>'cherry', 'fruit2'=>'blueberry');

// prepend magic

$resulting_array = ('fruit1'=>'cherry', 
                    'fruit2'=>'blueberry', 
                    'fruit3'=>'apple', 
                    'fruit4'=>'orange');

উত্তর:


219

আপনি কি পারবেন না:

$resulting_array = $array2 + $array1;

?


15
আরও দেখুন array_merge () এবং + অপারেটর ব্যবহার থেকে তার পার্থক্য: br.php.net/manual/en/function.array-merge.php#92602
— Havenard

2
@ ক্ল্যাটাস: শীশ হ্যাঁ, আমি পারি. নিশ্চিত না যে কী কারণে আমাকে ভাবতে পেরেছিল যে আমি করতে পারি না বা আগে কী কাজ করে না। উত্তরের জন্য ধন্যবাদ.
— কলিন ব্রক

এটি পার্থক্যটি লক্ষ্য করার মতো তবে এই পার্থক্যটি সংখ্যা কীগুলি সংরক্ষণের জন্য প্রাসঙ্গিক এবং এই অ্যারেটি স্ট্রিং কীগুলির সাথে একটি "খাঁটি" সহযোগী অ্যারে।
— ক্লিটাস

29

উত্তর না হয়। আপনি কী-মান জুটির সাথে কোনও এসোসিয়েটিভ অ্যারে প্রেন্ডেন্ড করতে পারবেন না।

তবে আপনি ইউনিয়ন অপারেটরের সাথে অ্যারের শুরুতে একটি নতুন অ্যারে তৈরি করতে পারেন যাতে নতুন কী-মান জুটি রয়েছে +। ফলাফলটি সম্পূর্ণ নতুন অ্যারে হলেও নতুন অ্যারে তৈরি করার ক্ষেত্রে ও (এন) জটিলতা রয়েছে।

সিনট্যাক্সটি নীচে রয়েছে।

$new_array = array('new_key' => 'value') + $original_array;

দ্রষ্টব্য: অ্যারে_মার্জ () ব্যবহার করবেন না। অ্যারে_মিটার () কীগুলিকে ওভাররাইট করে এবং সংখ্যা কীগুলি সংরক্ষণ করে না।


"কীগুলি ওভাররাইট করে এবং সংখ্যার কীগুলি সংরক্ষণ করে না" ... ক) ইউনিয়ন অপারেটর ("+") "নকল" কীগুলি কীভাবে পরিচালনা করবে? পুনরায়: সংখ্যার কীগুলি সংরক্ষণ না করুন: সম্ভবত পছন্দসই
— ব্র্যাড কেন্ট

16

আপনার পরিস্থিতিতে, আপনি অ্যারে_মিটার () ব্যবহার করতে চান:

array_merge(array('fruit1'=>'cherry', 'fruit2'=>'blueberry'), array('fruit3'=>'apple', 'fruit4'=>'orange'));

একক মান প্রেন্ডেন্ড করতে, অ্যারে_উনশিফ্ট () এর পরিবর্তে কোনও এসোসিয়েটিভ অ্যারের জন্য, আবার অ্যারে_মিয়ার () ব্যবহার করুন:

array_merge(array($key => $value), $myarray);

5

@ ক্লিটাস স্পট রয়েছে। কেবল যোগ করার জন্য, যদি ইনপুট অ্যারেগুলির উপাদানগুলির ক্রমটি অস্পষ্ট হয় এবং আপনার চূড়ান্ত অ্যারে বাছাই করার প্রয়োজন হয়, আপনি কেএসোর্ট করতে চাইতে পারেন :

$resulting_array = $array1 + $array2;
ksort($resulting_array);

4
দেরী নোট হিসাবে, ksortবুলেটিয়ান রিটার্ন করে, সুতরাং উপরের দুটি বিবৃতি হিসাবে করা দরকার যেমন একটি নয়, উদাহরণস্বরূপ $a = $array1 + $array2; ksort($a);, অন্যথায় $resulting_arrayএমন একটি বুলিয়ান মান হবে যা আপনি প্রত্যাশা করেছিলেন।
— এল ইয়াবো

3

@ এমভিপেট্রোভিচের মতো একই পদ্ধতি ব্যবহার করে আপনি সিনট্যাক্সটি সংক্ষিপ্ত করতে একটি অ্যারের শর্টহ্যান্ড সংস্করণ ব্যবহার করতে পারেন।

$_array = array_merge(["key1" => "key_value"], $_old_array);

তথ্যসূত্র:

পিএইচপি: অ্যারে_মেয়ার ()

পিএইচপি: অ্যারে - ম্যানুয়াল

পিএইচপি 5.4 এর হিসাবে আপনি সংক্ষিপ্ত অ্যারে সিনট্যাক্সও ব্যবহার করতে পারেন, যা [] এর সাথে অ্যারে () এর প্রতিস্থাপন করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.