php配列から要素の再インデックスを削除する方法

1184 ワード

ある配列から要素を削除するにはunsetを直接使うことができますが、今日見たものは驚きました.
 
  
$arr = array('a','b','c','d');
unset($arr[1]);
print_r($arr);
?>

print_r($arr)の後、結果はそうではなく、最終結果はArray([0]=>a[2]=>c[3]=>d)
では、欠落した要素が埋め込まれ、配列が再インデックスされるようにするにはどうすればいいのでしょうか.答えは
array_splice():
 
  
$arr = array('a','b','c','d');
array_splice($arr,1,1);
print_r($arr);
?>

print_r($arr)の後、結果はA(www.jb 51.net)rray([0]=>a[1]=>c[2]=>d)
配列指定要素の削除
array_search()比較実用
array_search()関数とin_array()と同様に、配列内でキー値を検索します.この値が見つかった場合、一致する要素のキー名が返されます.見つからない場合はfalseを返します
 
  
$array = array('1', '2', '3', '4', '5');
$del_value = 3;
unset($array[array_search($del_value , $array)]);// unset
print_r($array);

しゅつりょく
array('1', '2', '4', '5');
しかし、配列を再インデックスするにはforeachを使用して削除した配列を巡り、配列を再構築する必要があります.