2016-05-11 12 views
1

なぜこの関数が機能しないのですか?それを呼び出した後、同じ配列が出力されます。function delete_item()from 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

実際には配列の項目を削除していないためです。あなたは '$ item'を設定していません。 –

答えて

0

indexも削除する必要があります。ただ、これであなたのデルの機能を置き換える

<?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 Ra​​hman、 ありがとうございました。しかし地図ではないので変です。 –

1

はこれを試してみてください。これを試してください:

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

アイテムがアレイに複数回繰り返されるとどうなりますか? –