আমার মতো অ্যারে থাকলে:
$array['foo'] = 400;
$array['bar'] = 'xyz';
এবং আমি প্রথম আইটেমটি অ্যারের বাইরে নিয়ে যেতে চেয়েছিলাম এর কীটি না জেনে, আমি কীভাবে এটি করব? এর জন্য কোন অনুষ্ঠান আছে?
আমার মতো অ্যারে থাকলে:
$array['foo'] = 400;
$array['bar'] = 'xyz';
এবং আমি প্রথম আইটেমটি অ্যারের বাইরে নিয়ে যেতে চেয়েছিলাম এর কীটি না জেনে, আমি কীভাবে এটি করব? এর জন্য কোন অনুষ্ঠান আছে?
উত্তর:
reset() অ্যারের ভিতরে যদি আপনার একটি উপাদান থাকে তবে আপনাকে অ্যারের প্রথম মান দেয়:
$value = reset($array);
FALSEঅ্যারে খালি থাকলে এটি আপনাকে দেয় ।
$arr = array(/* stuff */); $val = $arr? reset($arr): /* value to indicate array is empty */;
আপনি যদি অ্যারে সম্পর্কে যথেষ্ট পরিমাণে জানেন না (আপনি নিশ্চিত হন না যে প্রথম কীটি ফু বা বার কিনা ) তবে অ্যারেটি সম্ভবত, খালিও হতে পারে ।
সুতরাং চেক করা ভাল হবে, বিশেষত যদি এমন সম্ভাবনা থাকে যে প্রত্যাবর্তিত মানটি বুলিয়ান মিথ্যা হতে পারে:
$value = empty($arr) ? $default : reset($arr);
উপরের কোডটি ব্যবহার করে resetএবং এর পার্শ্ব প্রতিক্রিয়াও রয়েছে (এটি অ্যারের অভ্যন্তরীণ পয়েন্টারটিকে পুনরায় সেট করে) তাই আপনি array_sliceঅ্যারের প্রথম উপাদানটির অনুলিপিটি দ্রুত অ্যাক্সেস করতে পছন্দ করতে পারেন :
$value = $default;
foreach(array_slice($arr, 0, 1) as $value);
ধরে নিই যে আপনি কী এবং মান দুটি আলাদাভাবে পেতে চান , আপনাকে এখানে চতুর্থ প্যারামিটার যুক্ত করতে হবে array_slice:
foreach(array_slice($arr, 0, 1, true) as $key => $value);
জোড়া হিসাবে প্রথম আইটেমটি পেতে ( key => value):
$item = array_slice($arr, 0, 1, true);
পৃথকভাবে শেষ আইটেম, কী এবং মানটি পেতে সাধারণ পরিবর্তন :
foreach(array_slice($arr, -1, 1, true) as $key => $value);
অ্যারেটি যদি সত্যিই বড় না হয় তবে আপনার আসলে প্রয়োজন নেই array_sliceএবং বরং পুরো কী অ্যারের একটি অনুলিপি পেতে পারেন, তবে প্রথম আইটেমটি পান:
$key = count($arr) ? array_keys($arr)[0] : null;
আপনার যদি খুব বড় অ্যারে থাকে, তবে, কলটির জন্য array_keysউল্লেখযোগ্য সময় এবং মেমরির বেশি প্রয়োজন হবে array_slice(উভয় ফাংশন অ্যারে হাঁটাচ্ছে, তবে পরবর্তীকালে এটি প্রয়োজনীয় সংখ্যক আইটেম সংগ্রহ করার সাথে সাথে শেষ হবে - যা একটি)।
একটি উল্লেখযোগ্য ব্যতিক্রম হ'ল যখন আপনার কাছে প্রথম কী থাকে যা খুব বড় এবং সংশ্লেষিত বস্তুকে নির্দেশ করে। যে ক্ষেত্রে array_sliceযে প্রথম বৃহৎ বস্তুর প্রতিলিপি পড়বে, array_keysশুধুমাত্র চাবি দখল করবে।
পিএইচপি 7.3 array_key_first()পাশাপাশি প্রয়োগarray_key_last() । পার্শ্ব প্রতিক্রিয়া হিসাবে অ্যারের অভ্যন্তরীণ অবস্থাটি পুনরায় সেট না করে এগুলি স্পষ্টভাবে প্রথম এবং শেষ কীগুলি অ্যাক্সেসের জন্য সরবরাহ করা হয়।
সুতরাং পিএইচপি 7.3 প্রথম মান এর $arrayসঙ্গে ব্যবহার করা যেতে পারে
$array[array_key_first($array)];
আপনার আরও ভাল পরীক্ষা করে দেখুন যে অ্যারেটি যদিও খালি নেই, বা আপনি একটি ত্রুটি পাবেন:
$firstKey = array_key_first($array);
if (null === $firstKey) {
$value = "Array is empty"; // An error should be handled here
} else {
$value = $array[$firstKey];
}
প্রথম পুনরাবৃত্তির বিরতিতে নকল লুপ:
$key = $value = NULL;
foreach ($array as $key => $value) {
break;
}
echo "$key = $value\n";
বা ব্যবহার করুন each()( সতর্কতা: পিএইচপি 7.2.0 হিসাবে অবমানিত ):
reset($array);
list($key, $value) = each($array);
echo "$key = $value\n";
reset()ফাংশনটি কেবল প্রথম মানটি পুনরুদ্ধার করতে পারে।
কয়েকটি বিকল্প আছে। array_shift()প্রথম উপাদানটি ফিরিয়ে দেবে, তবে এটি অ্যারের থেকে প্রথম উপাদানটিও সরিয়ে ফেলবে।
$first = array_shift($array);
current() অ্যারের অভ্যন্তরীণ মেমরি পয়েন্টারটি নির্দেশ করছে যে অ্যারের মানটি ফিরিয়ে দেবে, এটি ডিফল্টরূপে প্রথম উপাদান।
$first = current($array);
আপনি যদি এটি নিশ্চিত করতে চান যে এটি প্রথম উপাদানটির দিকে নির্দেশ করছে তবে আপনি সর্বদা ব্যবহার করতে পারেন reset()।
reset($array);
$first = current($array);
reset()আসলে উপাদানটি ফেরত দেয়, সুতরাং $first = current($array)এটির সাথে নিরর্থক following
কেবলমাত্র আমাদের কাছে আরও কিছু বিকল্প রয়েছে: reset($arr);আপনি যদি অ্যারে পয়েন্টারটি ঠিক জায়গায় রাখার চেষ্টা না করে থাকেন তবে যথেষ্ট ভাল এবং খুব বড় অ্যারে দিয়ে এটি ন্যূনতম পরিমাণে ওভারহেড জড়িত। এটি বলেছিল, এটিতে কিছু সমস্যা রয়েছে:
$arr = array(1,2);
current($arr); // 1
next($arr); // 2
current($arr); // 2
reset($arr); // 1
current($arr); // 1 !This was 2 before! We've changed the array's pointer.
পয়েন্টার পরিবর্তন না করে এটি করার উপায়:
$arr[reset(array_keys($arr))]; // OR
reset(array_values($arr));
এর সুবিধাটি $arr[reset(array_keys($arr))];হ'ল এটি অ্যারেটি খালি থাকলে এটি একটি সতর্কতা উত্থাপন করে।
আমরা করতে পারি
$first = reset($array);
পরিবর্তে
reset($array);
$first = current($array);
যেমন reset()
পুনরায় সেট করার পরে অ্যারের প্রথম উপাদানটি প্রদান করে;
এটিকেটির মতো কীটি না জেনে প্রথমে আইটেমটি বের করতে রিসেট () ফাংশনটি ব্যবহার করুন।
$value = array('foo' => 400, 'bar' => 'xyz');
echo reset($value);
আউটপুট // 400
আপনি এটি চেষ্টা করতে পারেন।
অ্যারের প্রথম মান পেতে: -
<?php
$large_array = array('foo' => 'bar', 'hello' => 'world');
var_dump(current($large_array));
?>
অ্যারের প্রথম কীটি পেতে
<?php
$large_array = array('foo' => 'bar', 'hello' => 'world');
$large_array_keys = array_keys($large_array);
var_dump(array_shift($large_array_keys));
?>
আমি প্রথম এবং শেষ মান পেতে এটি করি। এটি আরও মান সহ কাজ করে।
$a = array(
'foo' => 400,
'bar' => 'xyz',
);
$first = current($a); //400
$last = end($a); //xyz
পিএইচপি 7.3.0 দিয়ে শুরু করে অভ্যন্তরীণ পয়েন্টারটি পুনরায় সেট না করেই করা সম্ভব। আপনি ব্যবহার করবেন array_key_first। আপনি যদি নিশ্চিত হন যে আপনার অ্যারেতে এটির মূল্য রয়েছে তবে আপনি কেবল এটি করতে পারেন:
$first = $array[array_key_first($array)];
আরও সম্ভবত, আপনি অ্যারেটি খালি আছে এমন কেসটি পরিচালনা করতে চাইবেন:
$first = (empty($array)) ? $default : $array[array_key_first($array)];
আপনি শুধু ব্যবহার করতে পারেন $array[0]। এটি আপনাকে সর্বদা প্রথম আইটেমটি দেবে