2 ডি অ্যারে তৈরির সবচেয়ে সহজ উপায় কী। আমি এই জাতীয় কিছু করতে সক্ষম হবে আশা করি:
declare int d[0..m, 0..n]
উত্তর:
আপনি অ্যারে এর সূচক নির্দিষ্ট করে অ্যারে এর মতো একটি এসোসিয়েটিভ অ্যারে বা "হ্যাশ-টেবিল" তৈরি করতে পারেন।
$array = array(
0 => array(
'name' => 'John Doe',
'email' => 'john@example.com'
),
1 => array(
'name' => 'Jane Doe',
'email' => 'jane@example.com'
),
);
যা সমান
$array = array();
$array[0] = array();
$array[0]['name'] = 'John Doe';
$array[0]['email'] = 'john@example.com';
$array[1] = array();
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = 'jane@example.com';
নিম্নলিখিতটি সমতুল্য এবং দ্বিমাত্রিক অ্যারে ফলাফল:
$array = array(
array(0, 1, 2),
array(3, 4, 5),
);
বা
$array = array();
$array[] = array(0, 1, 2);
$array[] = array(3, 4, 5);
শুধু ঘোষণা? তোমার দরকার নেই। ভেরিয়েবলের উপস্থিতি নিশ্চিত করুন:
$d = array();
অ্যারেগুলি পরিবর্তনশীল আকারে পরিবর্তন করা হয় এবং অ-অযৌক্তিক উপাদানকে কিছু লেখার প্রয়াস এটি তৈরি করে (এবং প্রয়োজনে পুরো অ্যারে তৈরি করে)
$d[1][2] = 3;
এটি পূর্বের ঘোষণা ছাড়াই কোনও সংখ্যক মাত্রার জন্য বৈধ।
count
ঠিক মত মাত্রায় ব্যবহার করতে পারেন , উদাহরণস্বরূপ count($d[1])
, যদি না আমি আপনার বিষয়টিকে ভুল বুঝি?
প্রথমত, পিএইচপি-তে বহু-মাত্রিক অ্যারে নেই, এতে অ্যারে রয়েছে।
দ্বিতীয়ত, আপনি একটি ফাংশন লিখতে পারেন যা এটি করবে:
function declare($m, $n, $value = 0) {
return array_fill(0, $m, array_fill(0, $n, $value));
}
একটি সাধারণ জন্য, "আপনি যেমন যান তেমন পূরণ করুন" ধরণের সমাধান:
$foo = array(array());
এটি আপনাকে একটি নমনীয় সিউডো দ্বি-মাত্রিক অ্যারে পাবে যা hold foo [ n ] [ n ] ধরে রাখতে পারে যেখানে এন <= ∞ (অবশ্যই মেমরির আকারের স্বাভাবিক সীমাবদ্ধতার দ্বারা আপনার সীমিত তবে আপনি আশা করি ধারণাটি পাবেন)। এটি, তাত্ত্বিকভাবে, আপনার প্রয়োজন মতো আরও সাব অ্যারে তৈরি করতে বাড়ানো যেতে পারে।
যতদূর আমি অবগত রয়েছি এটি করার জন্য পিএইচপি ফাংশনটিতে কোনও বিল্ট নেই, আপনাকে এটি একটি লুপের মাধ্যমে বা একটি কাস্টম পদ্ধতির মাধ্যমে করতে হবে যা @ অ্যাম্বার দ্বারা উত্তরে অ্যারে_ফিলের মতো পুনরাবৃত্তভাবে ডাকে;
আমি ধরে নিচ্ছি আপনি বোঝাতে চাইছেন একটি খালি কিন্তু আন্তঃকরণযুক্ত অ্যারে তৈরি করা হয়েছে। উদাহরণস্বরূপ, আপনি 3 টি অ্যারের নীচের মতো চূড়ান্ত ফলাফল চান :
$final_array = array(array(), array(), array());
এটি কেবল হাতের কোডের পক্ষে সহজ, তবে 3 টি অ্যারের 3 টি অ্যারের মতো একটি স্বেচ্ছাকৃতির আকারের অ্যারের জন্য এটি ব্যবহারের আগে আরম্ভ করতে জটিল হতে শুরু করে:
$final_array = array(array(array(), array(), array()), array(array(), array(), array()), array(array(), array(), array()));
... ইত্যাদি ...
আমি হতাশা পেয়েছি। ত্রুটিগুলি যাচাই বা ছোঁড়া ছাড়াই ব্যবহারের জন্য গভীরতার অ্যারেগুলির কোনও প্রাথমিক অ্যারে ঘোষণা করার সহজ উপায় থাকলে ভাল লাগবে।
অটলির উত্তর আমাকে সত্যই বুঝতে সাহায্য করেছে। দ্বি-মাত্রিক অ্যারের মাধ্যমে পুনরাবৃত্তি কীভাবে করা যায় তার একটি উদাহরণ এখানে। এই নমুনাটি দেখায় যে কীভাবে অ্যারের পরিচিত নামগুলির জন্য মানগুলি খুঁজে পাওয়া যায় এবং একটি পূর্বাভাস যেখানে আপনি সন্ধান করেন সেখানে কেবলমাত্র সমস্ত ক্ষেত্রের মধ্য দিয়ে যান। আমি আশা করি এটি কাউকে সাহায্য করবে
$array = array(
0 => array(
'name' => 'John Doe',
'email' => 'john@example.com'
),
1 => array(
'name' => 'Jane Doe',
'email' => 'jane@example.com'
),
);
foreach ( $array as $groupid => $fields) {
echo "hi element ". $groupid . "\n";
echo ". name is ". $fields['name'] . "\n";
echo ". email is ". $fields['email'] . "\n";
$i = 0;
foreach ($fields as $field) {
echo ". field $i is ".$field . "\n";
$i++;
}
}
ফলাফল:
hi element 0
. name is John Doe
. email is john@example.com
. field 0 is John Doe
. field 1 is john@example.com
hi element 1
. name is Jane Doe
. email is jane@example.com
. field 0 is Jane Doe
. field 1 is jane@example.com
এবং আমার জন্য একটি অ্যারে বিচ্ছিন্ন হওয়া উচিত কিনা সে সম্পর্কে যুক্তি প্রসঙ্গে নির্ভর করে।
উদাহরণস্বরূপ, যদি $ a [6] [9] জনবসতিপূর্ণ না হয় তবে $ a [6] [9] এর সমপরিমাণ উদাহরণস্বরূপ "" বা 0 দিয়ে পপুলেট হচ্ছে।
$r = array("arr1","arr2");
একক অ্যারে উপাদান প্রতিধ্বনিত করার জন্য আপনার লিখিত হওয়া উচিত:
echo $r[0];
echo $r[1];
আউটপুট হবে: arr1 arr2
আপনি যদি একটি লাইনার ব্যবহার করে সাধারণ মানটির জন্য দ্রুত বহুমাত্রিক অ্যারে তৈরি করতে চান তবে আমি এই অ্যারে লাইব্রেরিটি এটি ব্যবহার করার জন্য এটি ব্যবহারের পরামর্শ দেব :
$array = Arr::setNestedElement([], '1.2.3', 'value');
যা উত্পাদন করবে
[
1 => [
2 => [
3 => 'value'
]
]
]
আপনি এটি চেষ্টা করতে পারেন, তবে দ্বিতীয় মাত্রার মানগুলি সূচকগুলির সমান হবে:
$array = array_fill_keys(range(0,5), range(0,5));
খালি অ্যারের জন্য আরও কিছুটা জটিল:
$array = array_fill_keys(range(0, 5), array_fill_keys(range(0, 5), null));
আপনাকে অন্য অ্যারেতে অ্যারে ঘোষণা করতে হবে।
$arr = array(array(content), array(content));
উদাহরণ:
$arr = array(array(1,2,3), array(4,5,6));
অ্যারে থেকে প্রথম আইটেমটি পেতে, আপনি ব্যবহার করবেন $arr[0][0]
, এটি অ্যারে থেকে প্রথম অ্যারের প্রথম আইটেমের মতো ।
অ্যারে থেকে দ্বিতীয় অ্যারে থেকে $arr[1][0]
প্রথম আইটেমটি ফিরিয়ে দেবে ।