Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में Object Array से Property Extract करना


Objects के array से specific property निकालकर simple array बनाने के कई तरीके हैं।

उदाहरण Data

$users = [
    (object)['id' => 12, 'name' => 'अमित', 'email' => 'amit@example.com'],
    (object)['id' => 33, 'name' => 'प्रिया', 'email' => 'priya@example.com'],
    (object)['id' => 59, 'name' => 'राहुल', 'email' => 'rahul@example.com'],
];

विधि 1: array_column() (PHP 5.5+ अनुशंसित)

// सबसे सरल और तेज़ तरीका
$ids = array_column($users, 'id');
$names = array_column($users, 'name');
$emails = array_column($users, 'email');

print_r($ids);
// आउटपुट: Array ( [0] => 12 [1] => 33 [2] => 59 )

विधि 2: array_map() (सभी PHP versions)

// PHP 7.4+ Arrow function
$ids = array_map(fn($user) => $user->id, $users);

// PHP 7.3 और पहले
$ids = array_map(function($user) {
    return $user->id;
}, $users);

// Multiple properties के लिए
$userData = array_map(function($user) {
    return [
        'id' => $user->id,
        'name' => $user->name
    ];
}, $users);

विधि 3: foreach Loop (सबसे स्पष्ट, सबसे नियंत्रण)

$ids = [];
$names = [];

foreach ($users as $user) {
    $ids[] = $user->id;
    $names[] = $user->name;
    
    // Conditional logic आसान है
    if ($user->id > 20) {
        $names[] = $user->name . ' (सीनियर)';
    }
}

विधि 4: Generator (Memory Efficient for Large Datasets)

function extractProperty(iterable $objects, string $property) {
    foreach ($objects as $obj) {
        yield $obj->$property;
    }
}

// उपयोग - memory efficient
$ids = iterator_to_array(extractProperty($users, 'id'));

// या सीधे iterate करें
foreach (extractProperty($users, 'name') as $name) {
    echo $name . "\n";
}

विधि 5: ArrayAccess Objects के लिए (जैसे Doctrine entities)

// यदि objects ArrayAccess implement करते हैं
$ids = array_map(function($user) {
    return $user['id']; // या $user->getId()
}, $users);

प्रदर्शन तुलना (100,000 objects)

विधिसमयMemory
array_column()~8msकम
array_map() (arrow fn)~12msकम
foreach~10msकम
Generator + iterator_to_array~15msबहुत कम (streaming)

निष्कर्ष

  • सरल extraction के लिए: array_column() - सबसे तेज़, साफ़ सिंटैक्स
  • Transformation के लिए: array_map() - लचीलापन
  • Complex logic के लिए: foreach - पूर्ण नियंत्रण
  • Huge datasets के लिए: Generator - constant memory
  1. - PHP में एरे से कंस्ट्रक्टर में आर्गुमेंट्स पास करना

    Reflection API का उपयोग एरे से कंस्ट्रक्टर में आर्गुमेंट्स पास करने के लिए किया जा सकता है। ReflectionClass::newInstanceArgs उपरोक्त लाइन दिए गए आर्गुमेंट्स से नया क्लास इंस्टेंस बनाती है: public ReflectionClass::newInstanceArgs ([ array $args ] ) : object यह क्लास का नया इंस्टेंस बनाता है जब आर्गु

  1. - PHP में एरे से कॉमा-अलग सूची बनाएं

    PHP में एरे से कॉमा-अलग सूची बनाना implode() फ़ंक्शन एरे तत्वों को एक स्ट्रिंग में जोड़ता है। उदाहरण 1: व्हाइटस्पेस के साथ स्ट्रिंग्स <?php $arr = array( John , Jacob , Tom , Tim ); echo लीडिंग/ट्रेलिंग व्हाइटस्पेस के साथ एरे...\n; foreach ($arr as $value) { echo मान = $value\n; } echo

  1. - PHP में array() फ़ंक्शन / सरणी निर्माण

    PHP में array() भाषा निर्माण (language construct) है जो सरणी बनाता है। PHP 5.4+ में छोटा सिंटैक्स [] भी उपलब्ध है। PHP में तीन प्रकार की सरणियाँ होती हैं। सरणी के प्रकार (Array Types) प्रकारविवरणउदाहरण सूचकांकित (Indexed)संख्यात्मक कुंजियाँ (0, 1, 2...)[10, 20, 30] सहयोगी (Associative)नामित कुंजि