配列内の要素を削除したい場合は、直接unsetを使用できますが、今日見たものには驚きました
$arr = 配列('a','b','c','d');
unset($arr[1]);
print_r($arr);
?>
print_r($arr)
その後、結果はそうではなく、最終的な結果は Array ( [0] => a [2] => c [3] => d ) になります
それでは、欠落している要素が埋められ、配列のインデックスが再作成されることを保証するにはどうすればよいでしょうか?答えは
です
$arr = 配列('a','b','c','d'); array_splice($arr,1,1); print_r($arr); ?>
print_r($arr) の後の結果は Array ( [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);
出力
配列('1', '2', '4', '5');
ただし、配列のインデックスを再作成したい場合は、foreach を使用して削除された配列を走査してから配列を再作成する必要があります。これも可能です。
http://www.bkjia.com/PHPjc/878458.html
www.bkjia.comtrue