PHP
एक सरणी पर निष्पादित
खोज…
किसी सरणी के प्रत्येक तत्व के लिए एक फ़ंक्शन लागू करना
किसी आइटम में किसी फ़ंक्शन को किसी सरणी में लागू करने के लिए, array_map()
उपयोग करें। यह एक नई सरणी लौटाएगा।
$array = array(1,2,3,4,5);
//each array item is iterated over and gets stored in the function parameter.
$newArray = array_map(function($item) {
return $item + 1;
}, $array);
$newArray
अब array(2,3,4,5,6);
।
अनाम फ़ंक्शन का उपयोग करने के बजाय, आप नामांकित फ़ंक्शन का उपयोग कर सकते हैं। ऊपर लिखा जा सकता है जैसे:
function addOne($item) {
return $item + 1;
}
$array = array(1, 2, 3, 4, 5);
$newArray = array_map('addOne', $array);
यदि नामित फ़ंक्शन एक वर्ग विधि है, तो फ़ंक्शन के कॉल में क्लास ऑब्जेक्ट के संदर्भ को शामिल करना होता है जो विधि इस प्रकार है:
class Example {
public function addOne($item) {
return $item + 1;
}
public function doCalculation() {
$array = array(1, 2, 3, 4, 5);
$newArray = array_map(array($this, 'addOne'), $array);
}
}
सरणी में प्रत्येक आइटम पर फ़ंक्शन लागू करने का एक और तरीका array_walk()
और array_walk_recursive()
। इन कार्यों में पारित कॉलबैक प्रत्येक सरणी आइटम की कुंजी / सूचकांक और मूल्य दोनों लेता है। ये फ़ंक्शन सफलता के लिए एक बूलियन के बजाय एक नया सरणी नहीं लौटाएंगे। उदाहरण के लिए, प्रत्येक तत्व को एक साधारण सरणी में मुद्रित करने के लिए:
$array = array(1, 2, 3, 4, 5);
array_walk($array, function($value, $key) {
echo $value . ' ';
});
// prints "1 2 3 4 5"
कॉलबैक का मान पैरामीटर संदर्भ द्वारा पारित किया जा सकता है, जिससे आप मूल सरणी में सीधे मूल्य बदल सकते हैं:
$array = array(1, 2, 3, 4, 5);
array_walk($array, function(&$value, $key) {
$value++;
});
$array
अब array(2,3,4,5,6);
नेस्टेड सरणियों के लिए, array_walk_recursive()
प्रत्येक उप-सरणी में गहराई से जाएगा:
$array = array(1, array(2, 3, array(4, 5), 6);
array_walk_recursive($array, function($value, $key) {
echo $value . ' ';
});
// prints "1 2 3 4 5 6"
नोट : array_walk
और array_walk_recursive
आपको एरे आइटम्स के मूल्य को बदलने देते हैं, लेकिन कुंजियों को नहीं। कॉलबैक में संदर्भ द्वारा कुंजियों को पास करना मान्य है लेकिन इसका कोई प्रभाव नहीं है।
विखंडू में विखंडन सरणी
array_chunk () एक सरणी को विखंडू में विभाजित करता है
मान लीजिए कि हम एकल आयामी सरणी का अनुसरण कर रहे हैं,
$input_array = array('a', 'b', 'c', 'd', 'e');
अब PHP सरणी के ऊपर array_chunk () का उपयोग करते हुए,
$output_array = array_chunk($input_array, 2);
उपरोक्त कोड 2 सरणी तत्वों का हिस्सा बना देगा और अनुसरण के रूप में एक बहुआयामी सरणी बना देगा।
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
यदि सरणी के सभी तत्व समान रूप से चंक आकार से विभाजित नहीं हैं, तो आउटपुट सरणी का अंतिम तत्व शेष तत्व होगा।
यदि हम दूसरे तर्क को कम से कम पास करते हैं तो 1_ E_WARNING को फेंक दिया जाएगा और आउटपुट सरणी NULL होगी।
पैरामीटर | विवरण |
---|---|
$ सरणी (सरणी) | इनपुट सरणी, कार्य करने के लिए सरणी |
$ आकार (int) | प्रत्येक चंक का आकार (पूर्णांक मान) |
$ preserve_keys (बूलियन) (वैकल्पिक) | यदि आप चाहते हैं कि आउटपुट एरे को कुंजियों को संरक्षित करने के लिए इसे TRUE पर सेट करें अन्यथा FALSE । |
किसी सरणी को स्ट्रिंग में लागू करना
implode()
सभी सरणी मानों को जोड़ती है लेकिन सभी महत्वपूर्ण जानकारी खो देती है:
$arr = ['a' => "AA", 'b' => "BB", 'c' => "CC"];
echo implode(" ", $arr); // AA BB CC
Imploding कुंजियों को array_keys()
कॉल का उपयोग करके किया जा सकता है:
$arr = ['a' => "AA", 'b' => "BB", 'c' => "CC"];
echo implode(" ", array_keys($arr)); // a b c
मूल्यों के साथ इम्प्लोडिंग कुंजी अधिक जटिल है लेकिन कार्यात्मक शैली का उपयोग करके किया जा सकता है:
$arr = ['a' => "AA", 'b' => "BB", 'c' => "CC"];
echo implode(" ", array_map(function($key, $val) {
return "$key:$val"; // function that glues key to the value
}, array_keys($arr), $arr));
// Output: a:AA b:BB c:CC
array_reduce
array_reduce
एक एकल मान में सरणी को कम करता है। असल में, array_reduce
पिछले पुनरावृत्ति के परिणाम के साथ प्रत्येक आइटम के माध्यम से जाएगा और अगले पुनरावृत्ति के लिए नए मूल्य का उत्पादन करेगा।
उपयोग: array_reduce ($array, function($carry, $item){...}, $defaul_value_of_first_carry)
- $ कैरी इटेरियन के अंतिम दौर का परिणाम है।
- $ आइटम सरणी में वर्तमान स्थिति का मूल्य है।
सरणी का योग
$result = array_reduce([1, 2, 3, 4, 5], function($carry, $item){
return $carry + $item;
});
परिणाम: 15
सरणी में सबसे बड़ी संख्या
$result = array_reduce([10, 23, 211, 34, 25], function($carry, $item){
return $item > $carry ? $item : $carry;
});
परिणाम: 211
क्या सभी आइटम 100 से अधिक है
$result = array_reduce([101, 230, 210, 341, 251], function($carry, $item){
return $carry && $item > 100;
}, true); //default value must set true
परिणाम: true
क्या कोई वस्तु 100 से कम है
$result = array_reduce([101, 230, 21, 341, 251], function($carry, $item){
return $carry || $item < 100;
}, false);//default value must set false
परिणाम: true
इम्पोड की तरह ($ सरणी, $ टुकड़ा)
$result = array_reduce(["hello", "world", "PHP", "language"], function($carry, $item){
return !$carry ? $item : $carry . "-" . $item ;
});
परिणाम: "hello-world-PHP-language"
यदि कोई कोड विधि है, तो स्रोत कोड होगा:
function implode_method($array, $piece){
return array_reduce($array, function($carry, $item) use ($piece) {
return !$carry ? $item : ($carry . $piece . $item);
});
}
$result = implode_method(["hello", "world", "PHP", "language"], "-");
परिणाम: "hello-world-PHP-language"
सूची का उपयोग करके "विनाशकारी" सरणियाँ ()
किसी सरणी में चर मानों की सूची को त्वरित रूप से असाइन करने के लिए सूची () का उपयोग करें। कॉम्पैक्ट भी देखें ()
// Assigns to $a, $b and $c the values of their respective array elements in $array with keys numbered from zero
list($a, $b, $c) = $array;
PHP 7.1 (वर्तमान में बीटा में) के साथ आप छोटी सूची सिंटैक्स का उपयोग करने में सक्षम होंगे:
// Assigns to $a, $b and $c the values of their respective array elements in $array with keys numbered from zero
[$a, $b, $c] = $array;
// Assigns to $a, $b and $c the values of the array elements in $array with the keys "a", "b" and "c", respectively
["a" => $a, "b" => $b, "c" => $c] = $array;
एक ऐरे पर एक मूल्य धक्का
किसी तत्व को किसी सरणी में धकेलने के दो तरीके हैं: array_push
और $array[] =
Array_push का उपयोग इस तरह किया जाता है:
$array = [1,2,3];
$newArraySize = array_push($array, 5, 6); // The method returns the new size of the array
print_r($array); // Array is passed by reference, therefore the original array is modified to contain the new elements
यह कोड प्रिंट होगा:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 5
[4] => 6
)
$array[] =
इस तरह प्रयोग किया जाता है:
$array = [1,2,3];
$array[] = 5;
$array[] = 6;
print_r($array);
यह कोड प्रिंट होगा:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 5
[4] => 6
)