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

PHP: विशिष्ट String से शुरू होने वाली Array Keys प्राप्त करें


PHP में array से उन keys को फ़िल्टर करने के कई तरीके हैं जो किसी विशिष्ट prefix से शुरू होती हैं।

विधि 1: Foreach Loop (सबसे स्पष्ट)

$array = [
    'test_val' => 123,
    'other-value' => 456,
    'test_result' => 789,
    'test_another' => 999
];

$result = [];
foreach ($array as $key => $value) {
    if (strpos($key, 'test_') === 0) { // === 0 का अर्थ है string की शुरुआत में
        $result[$key] = $value;
    }
}

print_r($result);
// आउटपुट: Array ( [test_val] => 123 [test_result] => 789 [test_another] => 999 )

विधि 2: array_filter() के साथ (PHP 5.6+)

$filtered = array_filter($array, function($value, $key) {
    return strpos($key, 'test_') === 0;
}, ARRAY_FILTER_USE_BOTH);

print_r($filtered);

विधि 3: array_keys() + array_intersect_key() (प्रदर्शन के लिए अच्छा)

$matchingKeys = array_keys(array_filter($array, function($k) {
    return strpos($k, 'test_') === 0;
}, ARRAY_FILTER_USE_KEY));

$result = array_intersect_key($array, array_flip($matchingKeys));

विधि 4: Regex के साथ (जटिल पैटर्न के लिए)

$filtered = array_filter($array, function($value, $key) {
    return preg_match('/^test_/', $key);
}, ARRAY_FILTER_USE_BOTH);

विधि 5: ArrayIterator (Memory Efficient for Large Arrays)

$iterator = new ArrayIterator($array);
$result = [];

foreach ($iterator as $key => $value) {
    if (strpos($key, 'test_') === 0) {
        $result[$key] = $value;
    }
}
// या FilterIterator का उपयोग करें
class PrefixFilter extends FilterIterator {
    private $prefix;
    public function __construct(Iterator $iterator, $prefix) {
        parent::__construct($iterator);
        $this->prefix = $prefix;
    }
    public function accept() {
        return strpos($this->key(), $this->prefix) === 0;
    }
}

$filtered = new PrefixFilter(new ArrayIterator($array), 'test_');
$result = iterator_to_array($filtered);

प्रदर्शन तुलना (10,000 elements)

विधिसमयMemory
Foreach Loop~0.8msकम
array_filter (ARRAY_FILTER_USE_BOTH)~1.2msमध्यम
Regex (preg_match)~2.5msमध्यम
ArrayIterator~1.0msबहुत कम (streaming)

सिफारिश

  • सरल उपयोग के लिए: Foreach loop (पढ़ने में आसान, तेज़)
  • Functional style के लिए: array_filter() with ARRAY_FILTER_USE_BOTH
  • बहुत बड़े arrays के लिए: ArrayIterator या Generator
  • जटिल पैटर्न के लिए: Regex
  1. - PHP में URL String से Parameters प्राप्त करना

    PHP में URL से query parameters extract करने के built-in functions। विधि 1: parse_url() + parse_str() (Standard) 25 ) */ // Access individual params echo $params[email]; // amit@example.com विधि 2: parse_str() Directly (Current Page के लिए) <?php // Current request के लिए parse_str($_SERVER[

  1. - PHP में जांचें कि स्ट्रिंग दिए गए शब्द से शुरू होती है या नहीं

    PHP में एक कस्टम फंक्शन बनाकर जांच सकते हैं कि कोई स्ट्रिंग निर्दिष्ट सबस्ट्रिंग से शुरू (starts with) होती है या नहीं। PHP 8.0+ में बिल्ट-इन str_starts_with() फंक्शन उपलब्ध है। सिंटैक्स (Syntax) function startsWith(string $haystack, string $needle): bool पैरामीटर्स (Parameters) $haystack - जांच

  1. - PHP – mb_list_encodings() के साथ सभी समर्थित एन्कोडिंग्स की सरणी लौटाएं

    PHP में mb_list_encodings() फंक्शन का उपयोग सभी समर्थित एन्कोडिंग्स की एक सरणी लौटाने के लिए किया जाता है। यह फंक्शन PHP 5 या उच्च संस्करण में समर्थित है।सिंटैक्सarray mb_list_encodings()पैरामीटर्सmb_list_encodings() कोई पैरामीटर नहीं लेता।रिटर्न मानयह फंक्शन एक संख्यात्मक रूप से अनुक्रमित सरणी लौटा