কোনও সাহসী অ্যারেতে একটি আইটেম যুক্ত করা হচ্ছে


90
//go through each question
foreach($file_data as $value) {
   //separate the string by pipes and place in variables
   list($category, $question) = explode('|', $value);

   //place in assoc array
   $data = array($category => $question);
   print_r($data);

}

এটি কাজ করে না কারণ এটি ডেটার মান প্রতিস্থাপন করে। আমি কীভাবে এটি প্রতিটি লুপের মধ্যে একটি সাহিত্যের মান যুক্ত করতে পারি? $file_dataএকটি গতিশীল আকার আছে এমন ডেটার অ্যারে।

উত্তর:


98

আমি মনে করি আপনি চান $data[$category] = $question;

অথবা যদি আপনি এমন একটি অ্যারে চান যা প্রশ্নের অ্যারে বিভাগগুলিকে মানচিত্র করে:

$data = array();
foreach($file_data as $value) {
    list($category, $question) = explode('|', $value, 2);

    if(!isset($data[$category])) {
        $data[$category] = array();
    }
    $data[$category][] = $question;
}
print_r($data);

9
অন্যান্য প্রোগ্রামাররা টাইপগুলির জন্য আপনাকে ঘৃণা করবে যদিও তাদের এগুলি করতে বাধ্য করা হবে বা তাদের ঠিক করতে হবে।
চোরমাস্টার

অ্যারে_পুষ্প নিয়ে আমি খুব স্বাচ্ছন্দ্য বোধ করি, বেসিকগুলি ভুলে গেছি! সত্যিই সহায়ক!
ক্লাউড

122

আপনি কেবল এটি করতে পারেন

$data += array($category => $question);

যদি আপনি পিএইচপি 5.4+ এ চলছে

$data += [$category => $question];

9
এটি কোনও মিশুক অ্যারেতে আইটেম যুক্ত করার সঠিক উত্তর।
andreszs

7
একাধিক উপাদান যুক্ত করুন: $ ডেটা + = ['x' => 1, 'y' => 2];
বিভক্ত 19

আপনি যদি অ্যারের অভ্যন্তরে একাধিক বস্তুর সাথে শেষ না করতে চান তবে এই
উপায়টি

দ্রষ্টব্য: যদি আপনার অ্যারে ইতিমধ্যে একই কী দিয়ে উপাদান না থাকে তবে এটি কোনও বিদ্যমান উপাদানটিকে ওভাররাইট করতে না পারলে এটি কাজ করতে পারে।
মোহামাদ হামৌডে

29

লুপ জন্য আগে:

$data = array();

তারপরে আপনার লুপে:

$data[] = array($catagory => $question);

4
আপনি যদি সেভাবে এটি করেন তবে ডেটা = অ্যারে () ব্যবহার করে প্রথমে অ্যারেটি শুরু করতে ভুলবেন না; অথবা অন্যথায় পিএইচপি একটি নোটিশ ফেলবে
অ্যালেক্স বেইলি

আমি মনে করি এসও আমার উত্তরটিকে ক্যাশে করে ফেলেছে, যতই পোস্ট করা হয়েছে আমি বুঝতে পেরেছিলাম যে এটি তার কোডে আরম্ভ করা হয়নি। সুতরাং আমি এটি যুক্ত করেছি এবং আমি আপনার মন্তব্যটি পরে দেখেছি, আপনাকে ধন্যবাদ :-)
ময়ে

4
এটি কাজ করে না কারণ এটি অ্যারের ভিতরে একটি অ্যারে তৈরি করেছিল। দুঃখিত আমার প্রশ্ন যদি আপনার মাধ্যমে বন্ধ হয়।
ফিল

পিএইচপি 5.4+ আপনি কিছুটা কম কোড লিখতে পারেন:$data=[]; $data[] = [$category => $question];
জাস্টিন

$res = array(); $res[] = array('foo' => $bar); $foo = $res['foo'];অপরিজ্ঞাত সূচক: foo ইন .. দিয়ে ব্যর্থ হয় তবে নীচে প্রস্তাবিত প্লাস সাইন কাজ করে।
কিউআরটিএল

7

আমি জানি এটি একটি পুরানো প্রশ্ন তবে আপনি ব্যবহার করতে পারেন:

array_push($data, array($category => $question));

এটি arrayআপনার স্রোতের শেষ দিকে এগিয়ে যাবে array। বা যদি আপনি কেবল আপনার অ্যারের শেষে একক মান যুক্ত করার চেষ্টা করছেন, আরও অ্যারে না করে তবে আপনি এটি ব্যবহার করতে পারেন:

array_push($data,$question);

6

যে কারও জন্য 2 ডি এসোসিয়েটিভ অ্যারে যুক্ত করা দরকার, আপনি উপরের উত্তরগুলিও ব্যবহার করতে পারেন এবং এই জাতীয় কোডটি ব্যবহার করতে পারেন

 $data[$category]["test"] = $question

তারপরে আপনি এটিকে কল করতে পারেন (ফলাফলটি পরীক্ষার মাধ্যমে:

echo $data[$category]["test"];

যা মুদ্রণ করা উচিত $ প্রশ্ন

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