tutorial - php भाषा




लूपिंग के बिना बहुआयामी सरणी में विशिष्ट "कुंजी" की सरणी कैसे प्राप्त करें (2)

PHP 5.5+

PHP5.5 + से शुरू करने के लिए आपके पास array_column() उपलब्ध है, जो नीचे दिए गए सभी अप्रचलित बनाता है।

PHP 5.3+

$ids = array_map(function ($ar) {return $ar['id'];}, $users);

@phihag द्वारा समाधान PHP 5.3.0 से शुरू होने वाले PHP में निष्पक्ष रूप से काम करेगा, अगर आपको इससे पहले समर्थन की आवश्यकता है, तो आपको उस wp_list_pluck की प्रतिलिपि बनाना होगा।

PHP <5.3

वर्डप्रेस 3.1+

वर्डप्रेस में wp_list_pluck नामक एक फ़ंक्शन होता है यदि आप वर्डप्रेस का उपयोग कर रहे हैं जो आपकी समस्या हल करता है।

PHP <5.3

यदि आप वर्डप्रेस का उपयोग नहीं कर रहे हैं , क्योंकि कोड ओपन सोर्स है, तो आप अपने प्रोजेक्ट में कोड पेस्ट कर सकते हैं (और फंक्शन को अपनी पसंद के अनुसार नाम बदल सकते हैं, जैसे array_pick)। यहां स्रोत देखें

आइए मान लें कि मेरे पास निम्न बहुआयामी सरणी है (MySQL या एक सेवा से पुनर्प्राप्त):

array(
    array(
        [id] => xxx,
        [name] => blah
    ),
    array(
        [id] => yyy,
        [name] => blahblah
    ),
    array(
        [id] => zzz,
        [name] => blahblahblah
    ),
)

क्या हम एक " अंतर्निहित " PHP फ़ंक्शन कॉल में id सरणी प्राप्त कर सकते हैं? या कोड की एक पंक्ति?
मैं पारंपरिक लूपिंग और मूल्य प्राप्त करने के बारे में जानता हूं लेकिन मुझे इसकी आवश्यकता नहीं है:

foreach($users as $user) {
    $ids[] = $user['id'];
}
print_r($ids);

शायद कुछ array_map() और array_map() जादू कर सकते हैं।


PHP 5.5 के बाद से, आप array_column उपयोग कर सकते हैं:

$ids = array_column($users, 'id');

PHP 5.3 के बाद से, आप array_map को अज्ञात फ़ंक्शन के साथ उपयोग कर सकते हैं, जैसे:

$ids = array_map(function ($ar) {return $ar['id'];}, $users);

इससे पहले (तकनीकी रूप से PHP 4.0.6+) , आपको इसके बजाय create_function के साथ एक अनाम फ़ंक्शन बनाना होगा:

$ids = array_map(create_function('$ar', 'return $ar["id"];'), $users);




php