আমি কীভাবে অ্যারে থেকে সমস্ত মান পিএইচপি-র ছোট হাতের মধ্যে রূপান্তর করতে পারি?
এরকম কিছু array_change_key_case
?
আমি কীভাবে অ্যারে থেকে সমস্ত মান পিএইচপি-র ছোট হাতের মধ্যে রূপান্তর করতে পারি?
এরকম কিছু array_change_key_case
?
উত্তর:
ব্যবহার array_map()
:
$yourArray = array_map('strtolower', $yourArray);
আপনার যদি নেস্টেড অ্যারে ছোট করা প্রয়োজন ( ইয়াহিয়া উদ্দিন লিখেছেন ):
$yourArray = array_map('nestedLowercase', $yourArray);
function nestedLowercase($value) {
if (is_array($value)) {
return array_map('nestedLowercase', $value);
}
return strtolower($value);
}
mb_strtolower
$yourArray = array_map('mb_strtolower', $yourArray);
আমি সবেমাত্র যাচাই করেছি এবং এটি সিরিলিক
কেবল সম্পূর্ণতার জন্য: আপনি এটি ব্যবহার করতে পারেন array_walk
:
array_walk($yourArray, function(&$value)
{
$value = strtolower($value);
});
পিএইচপি ডক্স থেকে:
যদি কলব্যাক অ্যারের প্রকৃত মানগুলির সাথে কাজ করা প্রয়োজন, তবে রেফারেন্স হিসাবে কলব্যাকের প্রথম পরামিতিটি নির্দিষ্ট করুন। তারপরে, সেই উপাদানগুলিতে যে কোনও পরিবর্তন আসল অ্যারে নিজেই করা হবে।
অথবা সরাসরি রেফারেন্স ব্যবহার করে foreach
লুপের মাধ্যমে :
foreach($yourArray as &$value)
$value = strtolower($value);
নোট করুন যে এই দুটি পদ্ধতি অ্যারেটিকে "স্থানে" পরিবর্তন করে, যেখানে array_map
অ্যারের একটি অনুলিপি তৈরি করে এবং প্রদান করে, যা খুব বড় অ্যারের ক্ষেত্রে পছন্দসই হতে পারে না।
array_walk_recursive()
। এছাড়াও mb_strtolower()
কারণ বিশ্ব বহুভাষী হয়।
আপনি অ্যারে_ম্যাপ () ব্যবহার করতে পারেন, প্রথম প্যারামিটারটি 'স্ট্র্টলওয়ার' (কোটস সহ) এবং দ্বিতীয় প্যারামিটারটি $ নিম্ন_কেন্দ্র_আরেতে সেট করতে পারেন।
আপনি যদি নেস্টেড অ্যারেতে সমস্ত মান ছোট করতে চান তবে নীচের কোডটি ব্যবহার করুন:
function nestedLowercase($value) {
if (is_array($value)) {
return array_map('nestedLowercase', $value);
}
return strtolower($value);
}
তাই:
[ 'A', 'B', ['C-1', 'C-2'], 'D']
ফিরে আসবে:
[ 'a', 'b', ['c-1', 'c-2'], 'd']
array_change_value_case
চালিয়ে
function array_change_value_case($array, $case = CASE_LOWER){
if ( ! is_array($array)) return false;
foreach ($array as $key => &$value){
if (is_array($value))
call_user_func_array(__function__, array (&$value, $case ) ) ;
else
$array[$key] = ($case == CASE_UPPER )
? strtoupper($array[$key])
: strtolower($array[$key]);
}
return $array;
}
$arrays = array ( 1 => 'ONE', 2=> 'TWO', 3 => 'THREE',
'FOUR' => array ('a' => 'Ahmed', 'b' => 'basem',
'c' => 'Continue'),
5=> 'FIVE',
array('AbCdeF'));
$change_case = array_change_value_case($arrays, CASE_UPPER);
echo "<pre>";
print_r($change_case);
Array ( [1] => one [2] => two [3] => three [FOUR] => Array ( [a] => ahmed [b] => basem [c] => continue ) [5] => five [6] => Array ( [0] => abcdef ) )
এআইও সমাধান / পুনরাবৃত্ত / ইউনিকোড | ইউটিএফ -8 | মাল্টিবাইট সমর্থিত!
/**
* Change array values case recursively (supports utf8/multibyte)
* @param array $array The array
* @param int $case Case to transform (\CASE_LOWER | \CASE_UPPER)
* @return array Final array
*/
function changeValuesCase ( array $array, $case = \CASE_LOWER ) : array {
if ( !\is_array ($array) ) {
return [];
}
/** @var integer $theCase */
$theCase = ($case === \CASE_LOWER)
? \MB_CASE_LOWER
: \MB_CASE_UPPER;
foreach ( $array as $key => $value ) {
$array[$key] = \is_array ($value)
? changeValuesCase ($value, $case)
: \mb_convert_case($array[$key], $theCase, 'UTF-8');
}
return $array;
}
উদাহরণ:
$food = [
'meat' => ['chicken', 'fish'],
'vegetables' => [
'leafy' => ['collard greens', 'kale', 'chard', 'spinach', 'lettuce'],
'root' => ['radish', 'turnip', 'potato', 'beet'],
'other' => ['brocolli', 'green beans', 'corn', 'tomatoes'],
],
'grains' => ['wheat', 'rice', 'oats'],
];
$newArray = changeValuesCase ($food, \CASE_UPPER);
আউটপুট
[
'meat' => [
0 => 'CHICKEN'
1 => 'FISH'
]
'vegetables' => [
'leafy' => [
0 => 'COLLARD GREENS'
1 => 'KALE'
2 => 'CHARD'
3 => 'SPINACH'
4 => 'LETTUCE'
]
'root' => [
0 => 'RADISH'
1 => 'TURNIP'
2 => 'POTATO'
3 => 'BEET'
]
'other' => [
0 => 'BROCOLLI'
1 => 'GREEN BEANS'
2 => 'CORN'
3 => 'TOMATOES'
]
]
'grains' => [
0 => 'WHEAT'
1 => 'RICE'
2 => 'OATS'
]
]
আপনার অ্যারেটি বহুমাত্রিক হলে আপনি বলবেন না। যদি তা হয় তবে অ্যারে_ম্যাপটি একা কাজ করবে না। আপনার কলব্যাক পদ্ধতি দরকার। বহুমাত্রিক অ্যারেগুলির জন্য, অ্যারে_চেঞ্জ_কি_ কেস চেষ্টা করুন ।
// You can pass array_change_key_case a multi-dimensional array,
// or call a method that returns one
$my_array = array_change_key_case(aMethodThatReturnsMultiDimArray(), CASE_UPPER);
; $ রঙ = অ্যারে ('এ' => 'নীল', 'বি' => 'সবুজ', 'সি' => 'লাল');
t স্ট্রোলটার = অ্যারে_ম্যাপ ('স্ট্র্টলভার', $ রঙ);
t strtoupper = অ্যারে_ম্যাপ ('স্ট্র্টউপার', $ রঙ);
print_r ($ strtolower); print_r ($ strtoupper); `
আপনি array_flip()
এবং এর সংমিশ্রণটিও ব্যবহার করতে পারেন array_change_key_case()
। এই পোস্টটি দেখুন
array_flip()
অ্যারেতে ডুপ্লিকেট মান যুক্ত থাকলে কল করার পরে অ্যারের ডেটা নষ্ট হয় ।