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


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.