मूल्य के आधार पर दो सरणियों में PHP स्प्लिटिंग सरणी


1 Answers

आप array_filter() फ़ंक्शन का उपयोग कर सकते हैं:

$myArray = array('item1', 'item2hidden', 'item3', 'item4', 'item5hidden');

$arr1 = array_filter($myArray, function($v) { return strpos($v, 'hidden') === false; });
$arr2 = array_diff($myArray, $arr1);

डेमो

Question

मेरे पास एक PHP सरणी है जो मैं 2 अलग सरणियों में विभाजित करने का प्रयास कर रहा हूं। मैं किसी भी मान को खींचने की कोशिश कर रहा हूं जिसमें शब्द "छिपा हुआ" है। इसलिए एक सरणी में सभी मान शामिल होंगे जिनमें "छुपा" शब्द नहीं है। अन्य सरणी में सभी मान शामिल होंगे जिनमें "छुपा" शब्द शामिल है। मैं यह समझ नहीं सकता कि यह कैसे करना है हालांकि।

मूल सरणी एक प्रपत्र पोस्ट से आ रही है जिसमें चेक बॉक्स और छिपे हुए इनपुट के एक समूह से चाबियाँ और मान शामिल हैं। तो वास्तविक पोस्ट का मान ऐसा कुछ दिखता है:

    Group1 => Array([0] => item1,[1] => item2hidden,[2] => item3,[3] => item4,[4] => item5hidden)

तो इसे सरल बनाने के लिए:

    $myArray = Array(item1, item2hidden, item3, item4, item5hidden)

अंतिम आउटपुट

   $arr1 = (item1, item3, item4)
   $arr2 = (item2hidden, item5hidden)

किसी को भी इस तरह से कुछ करने के लिए कैसे पता है?




आप array_filter का उपयोग कर सकते हैं:

function filtreHiddens($e) {
    if (isset($e['hidden']) && $e['hidden']) return true;
    else return false;
}

function filtreNotHiddens($e) {
    if (isset($e['hidden']) && !$e['hidden']) return true;
    else return false;
}

$arrayToFiltre = array(
    array('hidden' => true, 'someKey' => 'someVal'),
    array('hidden' => false, 'someKey1' => 'someVal1'),
    array('hidden' => true, 'someKey2' => 'someVal3'),
);

$hidden = array_filter($arrayToFiltre, 'filtreHiddens');
$notHidden = array_filter($arrayToFiltre, 'filtreNotHiddens');

print_r($hidden);
print_r($notHidden);



Related