この単純な関数を作成しました ($array からすべての $elem を削除します):
function remall($array, $elem) {
for($i=0; $i < count($array); $i++)
if($array[$i] == $elem)
unset($array[$i]);
$newarray = array_values($array);
return $newarray;
}
しかし、それは完全には機能していません。ここにいくつかの入力と出力があります
$u = array(1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7);
$r = remall($u, 7);
Output of $r: 12345767
$n = array(7, 7, 1, 7, 3, 4, 6, 7, 2, 3, 1, -3, 10, 11, 7, 7, 7, 2, 7);
$r = remall($n, 7);
Output of $r: 1346231-30117727
出力にまだ 7 があることに注意してください。また、私の関数は配列から数値を削除するだけです。何か見つけたら教えてください、ありがとう。
解決策:皆さん、これでうまくいきました(Flavius Stefに感謝します)
function remall($array, $elem) {
return array_values(array_diff($array, array($elem)));
}