2016-05-11 4 views
1

Warum funktioniert diese Funktion nicht? Nach dem Aufruf wird das gleiche Array gedruckt.Funktion delete_item() aus Array PHP

$myArray1 = ["Barcelona", "Romania", "Cile", "France"]; 

function del(&$array, $item_to_del){ 
    foreach ($array as $item) { 
     if ($item == $item_to_del){ 
      unset($item); 

     } 
    } 
} 

del($myArray1, "Barcelona"); 
var_dump($myArray1); 
+0

Weil Sie nicht wirklich das Element im Array löschen. Du deaktivierst '$ item'. –

Antwort

0

Sie müssen auch die index löschen.

Try this:

<?php 

$myArray1 = ["Barcelona", "Romania", "Cile", "France"]; 

function del(&$array, $item_to_del){ 
    foreach ($array as $key => $item) { 
     if ($item == $item_to_del){ 
      unset($array[$key]); 

     } 
    } 
} 

del($myArray1, "Barcelona"); 
var_dump($myArray1); 
+0

Md Mahfuzur Rahman, danke, das funktioniert, cool. Aber es ist seltsam, da es keine Karte ist. –

1

einfach Ihre del Funktion mit diesem ersetzen. versuchen Sie dies:

function del(&$array, $item_to_del){ 
    if (($key = array_search($item_to_del, $array)) !== false) { 
     unset($array[$key]); 
    } 
} 
+0

Was passiert, wenn sich das Objekt mehrere Male im Array wiederholt? –