परिणाम दो सरणी में बचाता है - php, codeigniter, foreach

मैं फोरैच और सरल HTML डोम के साथ खेल रहा हूं, मैं एक सरणी के कुछ लिंक को सहेजने की कोशिश कर रहा हूं। लेकिन मेरी समस्या यह है कि परिणाम एक सरणी के बजाय दो सरणी में बचाता है।

foreach($html->find("div[class^=voucher success]") as $q)
{
@$var = $q->find("a", 0)->href;

$pos = strpos($var, "/ut/");

if($pos === false)
{
$item[] = $var;
}

var_dump($item);
}

डंप:

array(1) {
[0]=> string(10) "/hm?v=2726" }
array(2) {
[0]=> string(10) "/hm?v=2726" [1]=> string(10) "/hm?v=2732"
}

ऐसा क्यों है? मैंने क्या गल्त किया है?

उत्तर:

जवाब के लिए 0 № 1

यह दो सरणी में बचत नहीं कर रहा है। आप "प्रत्येक foreach पाश के अंत में डेटा डंपिंग कर रहे हैं। इसलिए यह दो बार डंप करता है, क्योंकि foreach में दो loops है।

$ आइटम के अंतिम परिणाम को देखने के लिए आपको foreach के बाद डंप करने की आवश्यकता है।

foreach($html->find("div[class^=voucher success]") as $q)
{
@$var = $q->find("a", 0)->href;

$pos = strpos($var, "/ut/");

if($pos === false)
{
$item[] = $var;
}
}

var_dump($item);

आउटपुट अब होगा:

array(2) {
[0]=> string(10) "/hm?v=2726" [1]=> string(10) "/hm?v=2732"
}

जवाब के लिए 0 № 2

आपको लगता है कि यह दो सरणी में क्यों है? आपका var_dump आपके लूप के अंदर है, इसलिए यह हर बार आपके द्वारा फिर से डंपिंग होता है।


संबंधित सवाल
सबसे लोकप्रिय