खोज…


किसी सरणी के प्रत्येक तत्व के लिए एक फ़ंक्शन लागू करना

किसी आइटम में किसी फ़ंक्शन को किसी सरणी में लागू करने के लिए, 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
)


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow