どうも、ちょげ(@chogetarou)です。
配列(array)の0(ゼロ)を全削除する方法を紹介します。
方法

配列(array)の0(ゼロ)を全削除する方法は、2つあります。
array_filter()
ひとつは、array_filterを使う方法です。
まず、array_filter()を呼び出します。
そして、array_filter()の第1引数に対象の配列、第2引数に1つの引数を持つ関数を指定します。
関数で、引数が「0」以外の場合に「true」となる条件式を返します。
//arr=対象の配列
$result = array_filter($numbers, function ($value) {
return $value !== 0;
});
上記のarray_filter()は、対象の配列から0(ゼロ)を削除した新しい配列(array)を生成します。
使用例
<?php
$numbers = [1, 0, 0, 2, 0, 3, 4, 0, 5, 0, 0];
$result = array_filter($numbers, function ($value) {
return $value !== 0;
});
print_r($result);
?>
出力:
Array
(
[0] => 1
[3] => 2
[5] => 3
[6] => 4
[8] => 5
)
array_diff()
もうひとつは、array_diff()を使う方法です。
まず、array_diff()を呼び出します。
そして、array_diff()の第1引数に対象の配列、第2引数に 「[0]
」もしくは「array(0)
」を指定します。
//arr=対象の配列
$result = array_diff(arr, [0]);
//[0]と同じ結果になる
$result = array_diff(arr, array(0));
上記のarray_diff()は、対象の配列から0(ゼロ)を削除した新しい配列(array)を生成します。
使用例
<?php
$numbers = [1, 0, 0, 2, 0, 3, 4, 0, 5, 0, 0];
$result = array_diff($numbers, [0]);
print_r($result);
?>
出力:
Array
(
[0] => 1
[3] => 2
[5] => 3
[6] => 4
[8] => 5
)
まとめ
配列(array)の0(ゼロ)を全削除する方法は、次の2つです。
- array_filter()を使う方法
$result = array_filter($numbers, function ($value) { return $value !== 0; });
- array_diff()を使う方法
$result = array_diff(arr, [0]);
$result = array_diff(arr, array(0));
コメント