Ergebnis speichert in zwei Arrays - PHP, Codeigniter, Foreach

Ich spiele mit foreach und Simple HTML dom dort versuche ich einige Links zu einem Array zu speichern. Aber mein Problem ist, dass das Ergebnis in zwei Arrays statt in einem Array gespeichert wird.

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);
}

Dump:

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

Warum das? Was habe ich falsch gemacht?

Antworten:

0 für die Antwort № 1

Es wird nicht in zwei Arrays gespeichert. Sie speichern die Daten am Ende jeder foreach-Schleife. Daher werden zwei Dumps gemacht, weil es zwei Foreach-Schleifen gibt.

Um das Endergebnis von $ item zu sehen, müssen Sie nach der foreach ablegen.

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);

Die Ausgabe wäre jetzt:

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

0 für die Antwort № 2

Warum denkst du, dass es in zwei Arrays ist? Ihr var_dump befindet sich in Ihrer Schleife, sodass es bei jeder Iteration nur gedumpt wird.