পিএইচপি ব্যবহার করে অ্যারের থেকে কোনও উপাদান মুছার সহজ উপায় কি এই জাতীয় উপাদানটির foreach ($array)
আর অন্তর্ভুক্ত নয়?
আমি ভেবেছিলাম যে এটির সেটিংস এটি null
করবে তবে দৃশ্যত এটি কাজ করে না।
পিএইচপি ব্যবহার করে অ্যারের থেকে কোনও উপাদান মুছার সহজ উপায় কি এই জাতীয় উপাদানটির foreach ($array)
আর অন্তর্ভুক্ত নয়?
আমি ভেবেছিলাম যে এটির সেটিংস এটি null
করবে তবে দৃশ্যত এটি কাজ করে না।
উত্তর:
অ্যারে উপাদান মুছার বিভিন্ন উপায় রয়েছে, যেখানে কিছু নির্দিষ্ট কাজের জন্য অন্যের চেয়ে বেশি কার্যকর more
আপনি যদি কেবল একটি অ্যারে উপাদান মুছতে চান তবে আপনি unset()
বা বিকল্পভাবে ব্যবহার করতে পারেন \array_splice()
।
এছাড়াও যদি আপনার মান থাকে এবং আপনি \array_search()
কীটি পেতে ব্যবহার করতে পারেন এমন উপাদানটি মোছার কীটি জানেন না ।
unset()
মনে রাখবেন যে আপনি যখন unset()
অ্যারে কীগুলি ব্যবহার করেন তখন / পুনর্নির্দেশনা পরিবর্তন হবে না। আপনি যদি কীগুলি পুনর্নির্দেশ করতে চান তবে আপনি যে কীগুলি ব্যবহার করতে পারেন তার \array_values()
পরে unset()
সমস্ত কীগুলি 0 থেকে শুরু করে সংখ্যাযুক্ত এনুমারেটেড কীগুলিতে রূপান্তর করবে।
কোড
<?php
$array = [0 => "a", 1 => "b", 2 => "c"];
unset($array[1]);
//↑ Key which you want to delete
?>
আউটপুট
[
[0] => a
[2] => c
]
\array_splice()
পদ্ধতিআপনি যদি \array_splice()
কীগুলি ব্যবহার করেন তবে স্বয়ংক্রিয়ভাবে পুনরায় সংশোধন করা হবে, তবে এসোসিয়েটিভ কীগুলি পরিবর্তিত হবে না \array_values()
যার বিপরীতে সমস্ত কীগুলি সংখ্যাসূচক কীতে রূপান্তরিত হবে।
এছাড়াও \array_splice()
অফসেট প্রয়োজন, কী না! দ্বিতীয় প্যারামিটার হিসাবে
কোড
<?php
$array = [0 => "a", 1 => "b", 2 => "c"];
\array_splice($array, 1, 1);
//↑ Offset which you want to delete
?>
আউটপুট
[
[0] => a
[1] => c
]
array_splice()
unset()
রেফারেন্স হিসাবে অ্যারে নিতে একই , এবং এর অর্থ হল আপনি সেই ফাংশনগুলির রিটার্ন মানগুলি অ্যারেতে ফিরিয়ে দিতে চান না want
আপনি যদি একাধিক অ্যারে উপাদানগুলি মুছতে চান এবং কল করতে চান না unset()
বা \array_splice()
একাধিকবার আপনি ফাংশনগুলি ব্যবহার করতে পারেন \array_diff()
বা \array_diff_key()
যদি আপনি মুছতে চান এমন উপাদানগুলির মান বা কীগুলি জানেন কিনা তার উপর নির্ভর করে।
\array_diff()
পদ্ধতিআপনি যদি অ্যারে উপাদানগুলি মুছতে চান তার মানগুলি জানেন তবে আপনি এটি ব্যবহার করতে পারেন \array_diff()
। আগের মত unset()
এটি অ্যারের কীগুলি পরিবর্তন / পুনর্নির্দেশনা করবে না।
কোড
<?php
$array = [0 => "a", 1 => "b", 2 => "c"];
$array = \array_diff($array, ["a", "c"]);
//└────────┘→ Array values which you want to delete
?>
আউটপুট
[
[1] => b
]
\array_diff_key()
পদ্ধতিআপনি যে উপাদানগুলি মুছতে চান তার কীগুলি যদি আপনি জানেন তবে আপনি ব্যবহার করতে চান \array_diff_key()
। এখানে আপনাকে নিশ্চিত করতে হবে যে আপনি কীগুলি দ্বিতীয় প্যারামিটারে কী হিসাবে পাস করেছেন, মান হিসাবে নয়। অন্যথায়, আপনার সাথে অ্যারেটি ফ্লিপ করতে হবে \array_flip()
। এবং এছাড়াও এখানে কীগুলি পরিবর্তন / পুনর্নির্দেশনা করবে না।
কোড
<?php
$array = [0 => "a", 1 => "b", 2 => "c"];
$array = \array_diff_key($array, [0 => "xy", "2" => "xy"]);
//↑ ↑ Array keys which you want to delete
?>
আউটপুট
[
[1] => b
]
এছাড়াও যদি আপনি একই মান সহ একাধিক উপাদান ব্যবহার করতে unset()
বা \array_splice()
মুছতে চান তবে আপনি \array_keys()
একটি নির্দিষ্ট মানের জন্য সমস্ত কীগুলি পেতে এবং তারপরে সমস্ত উপাদান মুছতে পারেন।
array_splice
বর্ণিত হিসাবে @ আলেকজান্ডার ব্যবহার করুন ।
array (3) { [0]=>int(0) ...
যখন আপনি unset($x[2])
থেকে $x = array(1, 2, 3, 4);
ফল আবশ্যক হতে var_dump($x); // array(3) { [0]=> int(1) [1]=> int(2) [3]=> int(4) }
(এটা সম্ভবত টাইপো ছিল না)
unset
একাধিক আর্গুমেন্ট থাকতে পারে: void unset ( mixed $var [, mixed $... ] )
।
এটি লক্ষ করা উচিত যে unset()
সূচিগুলি আউটচুড রাখবে, যা স্ট্রিং সূচকগুলি (হ্যাশটেবল হিসাবে অ্যারে) ব্যবহার করার সময় আপনি প্রত্যাশা করতেন তবে পূর্ণসংখ্যার সূচকযুক্ত অ্যারেগুলি ব্যবহার করার সময় আপনি অবাক হয়ে উঠতে পারেন:
$array = array(0, 1, 2, 3);
unset($array[2]);
var_dump($array);
/* array(3) {
[0]=>
int(0)
[1]=>
int(1)
[3]=>
int(3)
} */
$array = array(0, 1, 2, 3);
array_splice($array, 2, 1);
var_dump($array);
/* array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(3)
} */
আপনি array_splice()
যদি আপনার পূর্ণসংখ্যা কীগুলি স্বাভাবিক করতে চান তবে এটি ব্যবহার করা যেতে পারে। এর array_values()
পরে আর একটি বিকল্প ব্যবহার করছে unset()
:
$array = array(0, 1, 2, 3);
unset($array[2]);
$array = array_values($array);
var_dump($array);
/* array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(3)
} */
array_splice
অন্যদের মধ্যে উপলব্ধি করতে পারে।
// Our initial array
$arr = array("blue", "green", "red", "yellow", "green", "orange", "yellow", "indigo", "red");
print_r($arr);
// Remove the elements who's values are yellow or red
$arr = array_diff($arr, array("yellow", "red"));
print_r($arr);
এটি উপরের কোড থেকে আউটপুট:
Array
(
[0] => blue
[1] => green
[2] => red
[3] => yellow
[4] => green
[5] => orange
[6] => yellow
[7] => indigo
[8] => red
)
Array
(
[0] => blue
[1] => green
[4] => green
[5] => orange
[7] => indigo
)
এখন, অ্যারে_ভ্যালুগুলি () একটি সংখ্যাসূচক অ্যারেটিকে সুন্দরভাবে পুনর্নির্মাণ করবে তবে এটি অ্যারে থেকে সমস্ত কী স্ট্রিংগুলি সরিয়ে দেবে এবং তাদের সংখ্যার সাথে প্রতিস্থাপন করবে। আপনার যদি কী (নামগুলি (স্ট্রিং) সংরক্ষণ করার প্রয়োজন হয়, বা যদি সমস্ত কীগুলি সংখ্যাসূচক হয় তবে অ্যারেটিকে পুনর্নির্দেশের প্রয়োজন হয়, অ্যারে_মিয়ার () ব্যবহার করুন:
$arr = array_merge(array_diff($arr, array("yellow", "red")));
print_r($arr);
আউটপুট
Array
(
[0] => blue
[1] => green
[2] => green
[3] => orange
[4] => indigo
)
$key = array_search($needle, $array);
if ($key !== false) {
unset($array[$key]);
}
unset($array[$index]);
আপনার যদি এমন একটি সংখ্যামূলক সূচকযুক্ত অ্যারে থাকে যেখানে সমস্ত মান পৃথক হয় (বা এগুলি অনন্য but
$my_array = array_diff($my_array, array('Value_to_remove'));
উদাহরণ স্বরূপ:
$my_array = array('Andy', 'Bertha', 'Charles', 'Diana');
echo sizeof($my_array) . "\n";
$my_array = array_diff($my_array, array('Charles'));
echo sizeof($my_array);
এটি নিম্নলিখিতগুলি প্রদর্শন করে:
4
3
এই উদাহরণস্বরূপ, 'চার্লস' মানযুক্ত উপাদানটি মুছে ফেলা হবে যা প্রাথমিক অ্যারের জন্য আকারের 4, এবং অপসারণের পরে 3 এর আকারের কল দ্বারা যাচাই করা যেতে পারে।
এছাড়াও, একটি নামকরণ উপাদান জন্য:
unset($array["elementName"]);
$a = array("A"=>1, "B"=>2, "C"=>"a");
print_r($a);
unset($a["B"]);
print_r($a);
দেয় (বিন্যাসিত): Array ( [A] => 1 [B] => 2 [C] => a ), Array ( [A] => 1 [C] => a )
একটি অ্যারের একক উপাদান ধ্বংস করুন
unset()
$array1 = array('A', 'B', 'C', 'D', 'E');
unset($array1[2]); // Delete known index(2) value from array
var_dump($array1);
আউটপুটটি হবে:
array(4) {
[0]=>
string(1) "A"
[1]=>
string(1) "B"
[3]=>
string(1) "D"
[4]=>
string(1) "E"
}
আপনার যদি অ্যারেটিকে পুনরায় সূচকের প্রয়োজন হয়:
$array1 = array_values($array1);
var_dump($array1);
তারপরে আউটপুটটি হবে:
array(4) {
[0]=>
string(1) "A"
[1]=>
string(1) "B"
[2]=>
string(1) "D"
[3]=>
string(1) "E"
}
অ্যারের শেষে উপাদানটি পপ করুন - সরানো উপাদানটির মানটি ফিরিয়ে দিন
mixed array_pop(array &$array)
$stack = array("orange", "banana", "apple", "raspberry");
$last_fruit = array_pop($stack);
print_r($stack);
print_r('Last Fruit:'.$last_fruit); // Last element of the array
আউটপুট হবে
Array
(
[0] => orange
[1] => banana
[2] => apple
)
Last Fruit: raspberry
একটি অ্যারের থেকে প্রথম উপাদান (লাল) সরান - মুছে ফেলা উপাদানটির মান ফেরৎ দিন
mixed array_shift ( array &$array )
$color = array("a" => "red", "b" => "green" , "c" => "blue");
$first_color = array_shift($color);
print_r ($color);
print_r ('First Color: '.$first_color);
আউটপুটটি হবে:
Array
(
[b] => green
[c] => blue
)
First Color: red
array_shift
পুনরায় সূচক যদি এটা পূর্ণসংখ্যা কী আইটেম, তাই এটা খারাপ, তাই আপনি এই ব্যবহার করতে পারেন: stackoverflow.com/a/52826684/1407491
<?php
$stack = ["fruit1", "fruit2", "fruit3", "fruit4"];
$fruit = array_shift($stack);
print_r($stack);
echo $fruit;
?>
আউটপুট:
[
[0] => fruit2
[1] => fruit3
[2] => fruit4
]
fruit1
array_shift
অ্যারেতে কেবল প্রথম উপাদানটি মুছতে পারে। একইভাবে array_pop
অ্যারের শেষ উপাদানটি মুছতে ব্যবহার করুন ।
কোনও অনুসন্ধান না করা এড়াতে যে কেউ এর সাথে খেলতে পারে array_diff
:
$array = array(3, 9, 11, 20);
$array = array_diff($array, array(11) ); // removes 11
এই ক্ষেত্রে কাউকে চাবিটি অনুসন্ধান / ব্যবহার করতে হবে না।
আপনার যদি অ্যারেতে একাধিক মান মুছে ফেলতে হয় এবং সেই অ্যারেতে প্রবেশকারীগুলি [array_filter][1]
হ'ল অবজেক্ট বা কাঠামোগত ডেটা হয় তবে আপনার সেরা বাজি। কলব্যাক ফাংশন থেকে সত্য প্রত্যাবর্তনকারী এন্ট্রিগুলি বজায় রাখা হবে।
$array = [
['x'=>1,'y'=>2,'z'=>3],
['x'=>2,'y'=>4,'z'=>6],
['x'=>3,'y'=>6,'z'=>9]
];
$results = array_filter($array, function($value) {
return $value['x'] > 2;
}); //=> [['x'=>3,'y'=>6,z=>'9']]
সহযোগী অ্যারেগুলির জন্য, ব্যবহার করুন unset
:
$arr = array('a' => 1, 'b' => 2, 'c' => 3);
unset($arr['b']);
// RESULT: array('a' => 1, 'c' => 3)
সংখ্যাযুক্ত অ্যারেগুলির জন্য, ব্যবহার করুন array_splice
:
$arr = array(1, 2, 3);
array_splice($arr, 1, 1);
// RESULT: array(0 => 1, 1 => 3)
unset
সংখ্যাযুক্ত অ্যারে ব্যবহার করে ত্রুটি তৈরি হবে না তবে এটি আপনার সূচিগুলিকে বিশৃঙ্খলা করবে:
$arr = array(1, 2, 3);
unset($arr[1]);
// RESULT: array(0 => 1, 2 => 3)
যদি আপনাকে কোনও এসোসিয়েটিভ অ্যারে থেকে একাধিক উপাদান সরানোর দরকার হয় তবে আপনি অ্যারে_ডিফ_কি () ব্যবহার করতে পারেন (এখানে অ্যারে_ফ্লিপ () ব্যবহার করুন ):
$my_array = array(
"key1" => "value 1",
"key2" => "value 2",
"key3" => "value 3",
"key4" => "value 4",
"key5" => "value 5",
);
$to_remove = array("key2", "key4");
$result = array_diff_key($my_array, array_flip($to_remove));
print_r($result);
আউটপুট:
Array ( [key1] => value 1 [key3] => value 3 [key5] => value 5 )
unset()
নির্দিষ্ট ভেরিয়েবল ধ্বংস করে।
unset()
কোন ধরণের ভেরিয়েবলকে আপনি ধ্বংস করার চেষ্টা করছেন তার উপর নির্ভর করে কোনও ফাংশনের অভ্যন্তরের আচরণের পরিবর্তন হতে পারে।
যদি কোনও বিশ্বায়িত ভেরিয়েবল unset()
কোনও ফাংশনের অভ্যন্তরে থাকে তবে কেবল স্থানীয় ভেরিয়েবল নষ্ট হয়ে যায়। কলিং পরিবেশে পরিবর্তনশীল আগের হিসাবে unset()
ডাকা হয়েছিল একই মান ধরে রাখবে ।
<?php
function destroy_foo()
{
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
উপরের কোডের উত্তরটি বার হবে ।
করার unset()
একটি ফাংশন একটি বিশ্বব্যাপী পরিবর্তনশীল ভিতরে:
<?php
function foo()
{
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
?>
// Remove by value
function removeFromArr($arr, $val)
{
unset($arr[array_search($val, $arr)]);
return array_values($arr);
}
যদি সূচকটি নির্দিষ্ট করা থাকে:
$arr = ['a', 'b', 'c'];
$index = 0;
unset($arr[$index]); // $arr = ['b', 'c']
যদি সূচকটি নির্দিষ্ট না করা থাকে:
$arr = ['a', 'b', 'c'];
$index = array_search('a', $arr); // search the value to find index
if($index !== false){
unset($arr[$index]); // $arr = ['b', 'c']
}
দ্য if
কারন যদি শর্ত প্রয়োজনীয় index
পাওয়া না গেলে unset()
স্বয়ংক্রিয়ভাবে অ্যারের প্রথম উপাদান যা আমরা কি চাই না মুছে ফেলবে
সলিউশন:
unset($array[3]); unset($array['foo']);
unset($array[3], $array[5]); unset($array['foo'], $array['bar']);
array_splice($array, $offset, $length);
অারোও ব্যাখ্যা:
এই ফাংশনগুলি ব্যবহার করে পিএইচপি থেকে এই উপাদানগুলির সমস্ত উল্লেখ সরিয়ে দেয়। আপনি যদি অ্যারেতে কী রাখতে চান তবে একটি শূন্য মান সহ, খালি স্ট্রিংটি উপাদানটিকে বরাদ্দ করুন:
$array[3] = $array['foo'] = '';
সিনট্যাক্স ছাড়াও আনসেট () ব্যবহার করে এবং উপাদানটিকে '' নির্ধারণের মধ্যে যৌক্তিক পার্থক্য রয়েছে । প্রথম বলেThis doesn't exist anymore,
দ্বিতীয়টি বলেThis still exists, but its value is the empty string.
যদি আপনি সংখ্যার সাথে কাজ করে থাকেন তবে 0 নির্ধারণ করা আরও ভাল বিকল্প হতে পারে। সুতরাং, যদি কোনও সংস্থা XL1000 স্প্রোকটের মডেলটির উত্পাদন বন্ধ করে দেয় তবে তা তার তালিকা আপডেট করে:
unset($products['XL1000']);
তবে, যদি এটি অস্থায়ীভাবে XL1000 স্প্রোককেটের বাইরে চলে যায় তবে এই সপ্তাহের শেষে উদ্ভিদটি থেকে একটি নতুন চালান পাওয়ার পরিকল্পনা করা হয়েছিল, এটি আরও ভাল:
$products['XL1000'] = 0;
যদি আপনি সেট না করে () কোনও উপাদান , পিএইচপি এই অ্যারেটি সামঞ্জস্য করে যাতে লুপিং এখনও সঠিকভাবে কাজ করে। এটি অনুপস্থিত গর্তগুলি পূরণ করার জন্য অ্যারেটি সংক্ষিপ্ত করে না। আমরা যখন বলি যে সমস্ত অ্যারে সংখ্যাসূচক বলে মনে হয় তখনও এটি অ্যারেটিভ হয় This এখানে একটি উদাহরণ:
// Create a "numeric" array
$animals = array('ant', 'bee', 'cat', 'dog', 'elk', 'fox');
print $animals[1]; // Prints 'bee'
print $animals[2]; // Prints 'cat'
count($animals); // Returns 6
// unset()
unset($animals[1]); // Removes element $animals[1] = 'bee'
print $animals[1]; // Prints '' and throws an E_NOTICE error
print $animals[2]; // Still prints 'cat'
count($animals); // Returns 5, even though $array[5] is 'fox'
// Add a new element
$animals[ ] = 'gnu'; // Add a new element (not Unix)
print $animals[1]; // Prints '', still empty
print $animals[6]; // Prints 'gnu', this is where 'gnu' ended up
count($animals); // Returns 6
// Assign ''
$animals[2] = ''; // Zero out value
print $animals[2]; // Prints ''
count($animals); // Returns 6, count does not decrease
ঘন পূরণে সংখ্যার অ্যারেতে অ্যারেটি সংক্ষিপ্ত করতে, অ্যারে_ভ্যালুগুলি ব্যবহার করুন () :
$animals = array_values($animals);
বিকল্পভাবে, অ্যারে_স্প্লাইস () গর্তগুলি এড়াতে স্বয়ংক্রিয়ভাবে অ্যারেগুলিকে পুনরায় সূচনা করে:
// Create a "numeric" array
$animals = array('ant', 'bee', 'cat', 'dog', 'elk', 'fox');
array_splice($animals, 2, 2);
print_r($animals);
Array
(
[0] => ant
[1] => bee
[2] => elk
[3] => fox
)
যদি আপনি অ্যারেটিকে একটি সারি হিসাবে ব্যবহার করেন এবং এলোমেলো অ্যাক্সেসের অনুমতি দেওয়ার সময় সারি থেকে আইটেমগুলি সরাতে চান তবে এটি কার্যকর। অ্যারে থেকে প্রথম বা শেষ উপাদানটি নিরাপদে অপসারণ করতে যথাক্রমে অ্যারে_শিফ্ট () এবং অ্যারে_পপ () ব্যবহার করুন ।
ধরুন আপনার নিম্নলিখিত অ্যারে রয়েছে:
Array
(
[user_id] => 193
[storage] => 5
)
মুছতে storage
, করুন:
unset($attributes['storage']);
$attributes = array_filter($attributes);
এবং আপনি পাবেন:
Array
(
[user_id] => 193
)
array_filter
ব্যবহার করা হয়?
আমি কেবল বলতে চাই যে আমার একটি নির্দিষ্ট অবজেক্ট ছিল যা ভেরিয়েবল অ্যাট্রিবিউটসযুক্ত ছিল (এটি মূলত একটি টেবিলটি ম্যাপিং করছিল এবং আমি টেবিলের কলামগুলি পরিবর্তন করছিলাম, সুতরাং বস্তুর বৈশিষ্ট্যগুলি, টেবিলকে প্রতিফলিত করার সাথে সাথে পৃথক হবে):
class obj {
protected $fields = array('field1','field2');
protected $field1 = array();
protected $field2 = array();
protected loadfields(){}
// This will load the $field1 and $field2 with rows of data for the column they describe
protected function clearFields($num){
foreach($fields as $field) {
unset($this->$field[$num]);
// This did not work the line below worked
unset($this->{$field}[$num]); // You have to resolve $field first using {}
}
}
}
এর পুরো উদ্দেশ্যটি $fields
ছিল স্রেফ, সুতরাং কোডগুলি যখন পরিবর্তন করা হবে সেদিকে আমার কোথাও দেখার দরকার নেই, আমি কেবল ক্লাসের শুরুটি দেখছি এবং বৈশিষ্ট্যের তালিকা এবং reflect ক্ষেত্রের অ্যারের সামগ্রীটি নতুনকে প্রতিবিম্বিত করতে পরিবর্তন করব বৈশিষ্ট্যাবলী।
ডিফল্ট ফাংশন অনুসরণ করুন:
ঝ)
$Array = array("test1", "test2", "test3", "test3");
unset($Array[2]);
২)
$Array = array("test1", "test2", "test3", "test3");
array_pop($Array);
গ)
$Array = array("test1", "test2", "test3", "test3");
array_splice($Array,1,2);
ঈ)
$Array = array("test1", "test2", "test3", "test3");
array_shift($Array);
<?php
$array = array("your array");
$array = array_diff($array, ["element you want to delete"]);
?>
ভেরিয়েবলটিতে আপনার অ্যারে তৈরি করুন $array
এবং তারপরে যেখানে আমি 'উপাদান আপনি মুছতে চান' এমন উপাদান রেখেছিলে আপনি এমন কিছু রেখেছেন: "এ"। এবং আপনি যদি একাধিক আইটেম মুছতে চান তবে: "এ", "বি"।
কীটি পেতে অ্যারে_সার্চটি ব্যবহার করুন এবং যদি পাওয়া যায় তবে আনসেট সহ এটি সরিয়ে ফেলুন:
if (($key = array_search('word', $array)) !== false) {
unset($array[$key]);
}
যদিও unset()
হয়েছে এখানে একথা বলার বেশ কয়েকবার এটা এখনো উল্লেখ্য গত হয়েছে unset()
স্বীকার করে ডিলিট একাধিক, এক অভিযানে একটি অ্যারে থেকে noncontiguous উপাদান এটা সহজ উপার্জন একাধিক ভেরিয়েবল:
// Delete multiple, noncontiguous elements from an array
$array = [ 'foo', 'bar', 'baz', 'quz' ];
unset( $array[2], $array[3] );
print_r($array);
// Output: [ 'foo', 'bar' ]
আনসেট () মুছে ফেলার জন্য কীগুলির একটি অ্যারে গ্রহণ করে না, সুতরাং নীচের কোডটি ব্যর্থ হবে (যদিও এটি অস্থায়ীভাবে () পরিবর্তনশীলভাবে ব্যবহার করা কিছুটা সহজ করে দিয়েছিল)।
$array = range(0,5);
$remove = [1,2];
$array = unset( $remove ); // FAILS: "unexpected 'unset'"
print_r($array);
পরিবর্তে, আনসেট () ফোরচ লুপে গতিশীলভাবে ব্যবহার করা যেতে পারে:
$array = range(0,5);
$remove = [1,2];
foreach ($remove as $k=>$v) {
unset($array[$v]);
}
print_r($array);
// Output: [ 0, 3, 4, 5 ]
আরও একটি অভ্যাস রয়েছে যা এখনও উল্লেখ করা হয়নি। কখনও কখনও, নির্দিষ্ট অ্যারে কীগুলি থেকে মুক্তি পাওয়ার সহজ উপায় হ'ল $ অ্যারে 1 কে $ অ্যারে 2 এ অনুলিপি করা।
$array1 = range(1,10);
foreach ($array1 as $v) {
// Remove all even integers from the array
if( $v % 2 ) {
$array2[] = $v;
}
}
print_r($array2);
// Output: [ 1, 3, 5, 7, 9 ];
স্পষ্টতই, একই অনুশীলন পাঠ্য স্ট্রিংগুলিতে প্রযোজ্য:
$array1 = [ 'foo', '_bar', 'baz' ];
foreach ($array1 as $v) {
// Remove all strings beginning with underscore
if( strpos($v,'_')===false ) {
$array2[] = $v;
}
}
print_r($array2);
// Output: [ 'foo', 'baz' ]
unset
নীচের মত ফাংশনটি ব্যবহার করুন :
$a = array(
'salam',
'10',
1
);
unset($a[1]);
print_r($a);
/*
Output:
Array
(
[0] => salam
[2] => 1
)
*/
ব্যবহার করুন array_search
একটি উপাদান কী পেতে এবং নীচের মত একটি অ্যারের উপাদান মুছে ফেলার জন্য উপরে পদ্ধতিতে ব্যবহার করতে ফাংশন:
$a = array(
'salam',
'10',
1
);
$key = array_search(10, $a);
if ($key !== false) {
unset($a[$key]);
}
print_r($a);
/*
Output:
Array
(
[0] => salam
[2] => 1
)
*/
সূচকের ক্রম বজায় রেখে অ্যারের প্রথম আইটেমটি সরিয়ে ফেলার দুটি উপায় এবং আপনি যদি প্রথম আইটেমটির মূল নামটি না জানেন তাও।
// 1 is the index of the first object to get
// NULL to get everything until the end
// true to preserve keys
$array = array_slice($array, 1, null, true);
// Rewinds the array's internal pointer to the first element
// and returns the value of the first array element.
$value = reset($array);
// Returns the index element of the current array position
$key = key($array);
unset($array[$key]);
এই নমুনা তথ্য জন্য:
$array = array(10 => "a", 20 => "b", 30 => "c");
আপনার অবশ্যই এই ফলাফলটি পাওয়া উচিত:
array(2) {
[20]=>
string(1) "b"
[30]=>
string(1) "c"
}
<?php
// If you want to remove a particular array element use this method
$my_array = array("key1"=>"value 1", "key2"=>"value 2", "key3"=>"value 3");
print_r($my_array);
if (array_key_exists("key1", $my_array)) {
unset($my_array['key1']);
print_r($my_array);
}
else {
echo "Key does not exist";
}
?>
<?php
//To remove first array element
$my_array = array("key1"=>"value 1", "key2"=>"value 2", "key3"=>"value 3");
print_r($my_array);
$new_array = array_slice($my_array, 1);
print_r($new_array);
?>
<?php
echo "<br/> ";
// To remove first array element to length
// starts from first and remove two element
$my_array = array("key1"=>"value 1", "key2"=>"value 2", "key3"=>"value 3");
print_r($my_array);
$new_array = array_slice($my_array, 1, 2);
print_r($new_array);
?>
আউটপুট
Array ( [key1] => value 1 [key2] => value 2 [key3] =>
value 3 ) Array ( [key2] => value 2 [key3] => value 3 )
Array ( [key1] => value 1 [key2] => value 2 [key3] => value 3 )
Array ( [key2] => value 2 [key3] => value 3 )
Array ( [key1] => value 1 [key2] => value 2 [key3] => value 3 )
Array ( [key2] => value 2 [key3] => value 3 )
অ-পূর্ণসংখ্যা কী সহ মিশ্রিত অ্যারেগুলির জন্য:
কেবল, unset($array[$key])
কাজ করবে।
পূর্ণসংখ্যা কী থাকা অ্যারেগুলির জন্য এবং আপনি যদি কীগুলি বজায় রাখতে চান তবে:
$array = [ 'mango', 'red', 'orange', 'grapes'];
unset($array[2]);
$array = array_values($array);
array_splice($array, 2, 1);
এটি সাহায্য করতে পারে ...
<?php
$a1 = array("a"=>"red", "b"=>"green", "c"=>"blue", "d"=>"yellow");
$a2 = array("a"=>"purple", "b"=>"orange");
array_splice($a1, 0, 2, $a2);
print_r($a1);
?>
ফলাফলটি হবে:
Array ( [0] => purple [1] => orange [c] => blue [d] => yellow )
unset()
অ্যারের উপরে পুনরাবৃত্তির সাথে মুছে ফেলা মানটি আর অন্তর্ভুক্ত করা হবে না। ওহ, এটি সত্য যে স্টিভান উত্তরটি যথেষ্ট এবং আসলে, আমি যে উত্তরটি খুঁজছিলাম - কিন্তু ওপি নয় :)