2016-04-10 14 views
0

Es ist sehr lustig, dass meine Array einige Werte zurückgibt, die ich will, dass sie nicht und ich fügte sie nie es:Array zurückgibt unerwünschte Werte - php

foreach ($this->cart as $c) { 


     if ($c['parent_id'] != 0) { 
      $parent_id = $c['parent_id']; 

      if(in_array($parent_id,$checked_parents)) 
      { 
       echo 'true'; 
      }else 
      { 

       echo 'parent=>'.$parent_id; 
       echo '<br />'; 
       $checked_parents[] = $parent_id; 
       $childes[] = array(); 
       foreach($this->cart as $c2) 
       { 


        if($c2['parent_id'] == $parent_id) 
        { 
         $childes[$c2['id']] = $c2 ; 
         echo 'added'.$c2['id']; 
         echo '<br />'; 

        } 

       } 


       foreach($childes as $k => $v) 
       { 

        echo $k ; 
        echo '<br />'; 
        if(!$k || $k == 0) 
         continue; 
        ... 
        //my other codes 
        ... 

meine echo ‚s Ausgänge:

parent=>16709 
added3 
0 // unwanted value ? 
3 
parent=>16710 
added2 
added1 
0 // unwanted value ? 
3 // unwanted value ? 
4 // unwanted value ? 
2 // it's ok 
1 // it's ok 
true 

unerwünschte Werte:

0,3,4 

warum meine Array hinzugefügt?

+2

Sie Echo hier den Schlüssel aus 'echo $ k;' – Rizier123

+0

Aber '$ k' nicht gleich der' $ c2 [‘ ID '] '? –

+1

'$ childes [] = array();' Sie initialisieren das Array hier nicht, sondern fügen ein leeres Array hinzu. – Rizier123

Antwort

0

gerade geändert I:

$childes[] = array(); 

zu:

unset($childes); 
+1

Oder Sie instanziieren das Array: '$ childes = array();' – Rizier123