web-dev-qa-db-ja.com

PHP:配列から要素を削除する

foreach ($array)がもはやその要素を含まないように、PHPを使って配列から要素を削除する簡単な方法はありますか?

私はそれをnullに設定することでそれができると思いましたが、どうやらそれはうまくいきません。

2149
Ben

配列要素を削除する方法はいくつかありますが、特定のタスクにとっては他のものよりも便利なものがあります。

配列要素を1つ削除する

1つの配列要素だけを削除したい場合は、 \unset() または \array_splice() を使用できます。

また、値があり、要素を削除するためのキーがわからない場合は、 \array_search() を使用してキーを取得できます。

\unset() method

\unset()を使用しても、配列キーは変更されず、インデックスの再作成もされません。キーを再インデックス付けしたい場合は、\array_values()の後に \unset() を使用できます。これは、すべてのキーを0から始まる数値の列挙キーに変換します。

コード

<?php

    $array = [0 => "a", 1 => "b", 2 => "c"];
    \unset($array[1]);
                //↑ Key which you want to delete

?>

出力

[
    [0] => a
    [2] => c
]

\array_splice() method

\array_splice()を使用すると、キーは自動的に再インデックス付けされますが、連想キーは、すべてのキーを数字キーに変換する\array_values()とは異なります。

\array_splice()もキーではなくオフセットが必要です。 2番目のパラメータとして。

コード

<?php

    $array = [0 => "a", 1 => "b", 2 => "c"];
    \array_splice($array, 1, 1);
                        //↑ Offset which you want to delete

?>

出力

[
    [0] => a
    [1] => c
]

array_splice()と同じ\unset()は参照によって配列を取ります。これはそれらの関数の戻り値を配列に代入したくないことを意味します。

複数の配列要素を削除する

複数の配列要素を削除し、\unset()または\array_splice()を複数回呼び出したくない場合は、削除する要素の値またはキーがわかっているかどうかに応じて、関数\array_diff()または\array_diff_key()を使用できます。

\array_diff() method

あなたが削除したい配列要素の値を知っているなら、あなたは\array_diff()を使うことができます。 \unset()の場合と同様に、配列のキーの変更やインデックスの再作成は行われません。

コード

<?php

    $array = [0 => "a", 1 => "b", 2 => "c"];
    $array = \array_diff($array, ["a", "c"]);
                               //└────────┘→ Array values which you want to delete

?>

出力

[
    [1] => b
]

\array_diff_key() method

あなたが削除したい要素のキーを知っているなら、あなたは\array_diff_key()を使いたいです。ここでは、キーを値としてではなく、2番目のパラメータのキーとして渡す必要があります。そうでなければ、 \array_flip() で配列を反転する必要があります。また、ここでもキーは変更されず、インデックスの再作成もされません。

コード

<?php

    $array = [0 => "a", 1 => "b", 2 => "c"];
    $array = \array_diff_key($array, [0 => "xy", "2" => "xy"]);
                                    //↑           ↑ Array keys which you want to delete
?>

出力

[
    [1] => b
]

また、同じ値を持つ複数の要素を削除するために\unset()または\array_splice()を使用したい場合は、 \array_keys() を使用して特定の値のすべてのキーを取得してから、すべての要素を削除できます。

2462
Konrad Rudolph

unset() はインデックスをそのままにしておくことに注意してください。これは文字列インデックス(ハッシュテーブルとしての配列)を使うときに期待されることですが、整数インデックス付き配列を扱うときは非常に驚くべきことです:

$array = array(0, 1, 2, 3);
unset($array[2]);
var_dump($array);
/* array(3) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [3]=>
  int(3)
} */

$array = array(0, 1, 2, 3);
array_splice($array, 2, 1);
var_dump($array);
/* array(3) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(3)
} */

そのため、整数キーを正規化したい場合は array_splice() を使用できます。別のオプションは array_values() の後に unset() を使うことです:

$array = array(0, 1, 2, 3);

unset($array[2]);
$array = array_values($array);
var_dump($array);
/* array(3) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(3)
} */
1325
Stefan Gehrig
  // Our initial array
  $arr = array("blue", "green", "red", "yellow", "green", "orange", "yellow", "Indigo", "red");
  print_r($arr);

  // Remove the elements who's values are yellow or red
  $arr = array_diff($arr, array("yellow", "red"));
  print_r($arr);

これは上記のコードからの出力です。

Array
(
    [0] => blue
    [1] => green
    [2] => red
    [3] => yellow
    [4] => green
    [5] => orange
    [6] => yellow
    [7] => Indigo
    [8] => red
)

Array
(
    [0] => blue
    [1] => green
    [4] => green
    [5] => orange
    [7] => Indigo
)

これで、array_values()は数値配列のインデックスを再作成できますが、配列からすべてのキー文字列が削除されて数字に置き換えられます。キー名(文字列)を保存する必要がある場合、またはすべてのキーが数値の場合に配列のインデックスを再作成する場合は、array_merge()を使用してください。

$arr = array_merge(array_diff($arr, array("yellow", "red")));
print_r($arr);

アウトプット

Array
(
    [0] => blue
    [1] => green
    [2] => green
    [3] => orange
    [4] => Indigo
)
344
Marcel Cozma
$key = array_search($needle, $array);
if ($key !== false) {
    unset($array[$key]);
}
182
liamvictor
unset($array[$index]);
70
Eran Galperin

すべての値が一意である(またはそれらが一意ではないが特定の値のすべてのインスタンスを削除する)数値添字配列を使用している場合は、次のように単にarray_diff()を使用して一致する要素を削除できます。

$my_array = array_diff($my_array, array('Value_to_remove'));

例えば:

$my_array = array('Andy', 'Bertha', 'Charles', 'Diana');
echo sizeof($my_array) . "\n";
$my_array = array_diff($my_array, array('Charles'));
echo sizeof($my_array);

次のように表示されます。

4
3

この例では、初期配列のサイズが4、削除後のサイズが3であることを報告するsizeof()呼び出しで確認できるように、値 'Charles'を持つ要素が削除されます。

60
Robin Nixon

また、名前付き要素の場合:

unset($array["elementName"]);
56

配列の単一要素を破壊する

unset()

$array1 = array('A', 'B', 'C', 'D', 'E');
unset($array1[2]); // Delete known index(2) value from array
var_dump($array1);

出力は次のようになります。

array(4) {
  [0]=>
  string(1) "A"
  [1]=>
  string(1) "B"
  [3]=>
  string(1) "D"
  [4]=>
  string(1) "E"
}

あなたが配列を再インデックスする必要があるならば:

$array1 = array_values($array1);
var_dump($array1);

出力は次のようになります。

array(4) {
  [0]=>
  string(1) "A"
  [1]=>
  string(1) "B"
  [2]=>
  string(1) "D"
  [3]=>
  string(1) "E"
}

要素を配列の末尾からポップします - 削除された要素の値を返します

mixed array_pop(array &$array)

$stack = array("orange", "banana", "Apple", "raspberry");
$last_fruit = array_pop($stack);
print_r($stack);
print_r('Last Fruit:'.$last_fruit); // Last element of the array

出力は次のようになります。

Array
(
    [0] => orange
    [1] => banana
    [2] => Apple
)
Last Fruit: raspberry

配列から最初の要素(赤)を削除する 、 - 削除した要素の値を返す

mixed array_shift ( array &$array )

$color = array("a" => "red", "b" => "green" , "c" => "blue");
$first_color = array_shift($color);
print_r ($color);
print_r ('First Color: '.$first_color);

出力は次のようになります。

Array
(
    [b] => green
    [c] => blue
)
First Color: red
29
KTAnj
<?php
    $stack = array("fruit1", "fruit2", "fruit3", "fruit4");
    $fruit = array_shift($stack);
    print_r($stack);

    echo $fruit;
?>

出力: 

Array
(
    [0] => fruit2
    [1] => fruit3
    [2] => fruit4
)

fruit1
26

検索をしないようにするためにはarray_diffで遊ぶことができます:

$array = array(3, 9, 11, 20);
$array = array_diff($array, array(11) ); // removes 11

この場合、キーを検索/使用する必要はありません。

24

unset()は指定された変数を破棄します。

関数内のunset()の動作は、破壊しようとしている変数の種類によって異なります。

グローバル化された変数が関数内でunset()の場合、ローカル変数のみが破棄されます。呼び出し環境の変数は、unset()が呼び出される前と同じ値を保持します。

<?php
    function destroy_foo()
    {
        global $foo;
        unset($foo);
    }

    $foo = 'bar';
    destroy_foo();
    echo $foo;
?>

上記のコードの答えは bar になります。

関数内でグローバル変数をunset()するには:

<?php
    function foo()
    {
        unset($GLOBALS['bar']);
    }

    $bar = "something";
    foo();
?>
17
Ankit Aggarwal

配列内の複数の値を削除する必要があり、その配列内のエントリがオブジェクトまたは構造化データの場合は、[array_filter][1]が最善の策です。コールバック関数からtrueを返すエントリは保持されます。 

$array = [
    ['x'=>1,'y'=>2,'z'=>3], 
    ['x'=>2,'y'=>4,'z'=>6], 
    ['x'=>3,'y'=>6,'z'=>9]
];

$results = array_filter($array, function($value) {
    return $value['x'] > 2; 
}); //=> [['x'=>3,'y'=>6,z=>'9']]
16
spyle

連想配列

連想配列の場合は、 unset を使用します。

$arr = array('a' => 1, 'b' => 2, 'c' => 3);
unset($arr['b']);

// RESULT: array('a' => 1, 'c' => 3)

数値配列

数値配列の場合は、 array_splice を使用します。

$arr = array(1, 2, 3);
array_splice($arr, 1, 1);

// RESULT: array(0 => 1, 1 => 3)

注意

数値配列に unset を使用してもエラーにはなりませんが、インデックスがめちゃくちゃになります。

$arr = array(1, 2, 3);
unset($arr[1]);

// RESULT: array(0 => 1, 2 => 3)
16
John Slegers
// Remove by value
function removeFromArr($arr, $val)
{
    unset($arr[array_search($val, $arr)]);
    return array_values($arr);
}

連想配列から複数の要素を削除する必要がある場合は、 array_diff_key() (ここでは array_flip() と共に使用します)を使用できます。

$my_array = array(
  "key1" => "value 1",
  "key2" => "value 2",
  "key3" => "value 3",
  "key4" => "value 4",
  "key5" => "value 5",
);

$to_remove = array("key2", "key4");

$result = array_diff_key($my_array, array_flip($to_remove));

print_r($result);

出力:

Array ( [key1] => value 1 [key3] => value 3 [key5] => value 5 ) 
15
Simon

デフォルトの機能に従います。

私)

$Array = array("test1", "test2", "test3", "test3");

unset($Array[2]);

ii)

$Array = array("test1", "test2", "test3", "test3");

array_pop($Array);

iii)

$Array = array("test1", "test2", "test3", "test3");

array_splice($Array,1,2);

iv)

$Array = array("test1", "test2", "test3", "test3");

array_shift($Array);
7
msvairam

次のような配列があるとします。

Array
(
    [user_id] => 193
    [storage] => 5
)

storageを削除するには、次のようにします。

unset($attributes['storage']);
$attributes = array_filter($attributes);

そしてあなたが得る:

Array
(
    [user_id] => 193
)
7
Tebe

可変属性を持つ特定のオブジェクトがあるとします(基本的にはテーブルをマッピングしていて、テーブル内の列を変更していたので、テーブルを反映するオブジェクト内の属性も変わります)。

class obj {
    protected $fields = array('field1','field2');
    protected $field1 = array();
    protected $field2 = array();
    protected loadfields(){}
    // This will load the $field1 and $field2 with rows of data for the column they describe
    protected function clearFields($num){
        foreach($fields as $field) {
            unset($this->$field[$num]);
            // This did not work the line below worked
            unset($this->{$field}[$num]); // You have to resolve $field first using {}
        }
    }
}

$fieldsの全体的な目的は、コードが変更されたときにコード内のあらゆる場所を調べる必要がないことです。クラスの先頭を見て、属性のリストと $ fields 配列を変更するだけです。新しい属性を反映するためのコンテンツ。

7
Oxydel

解決策:

  1. 1つの要素を削除するには、 unset() を使用します。
unset($array[3]);
unset($array['foo']);
  1. 連続していない複数の要素を削除するには、 unset() も使用します。
unset($array[3], $array[5]);
unset($array['foo'], $array['bar']);
  1. 複数の連続した要素を削除するには、 array_splice() を使用します。
array_splice($array, $offset, $length);

詳しい説明:

これらの関数を使用すると、PHPからこれらの要素への参照がすべて削除されます。配列内にキーを保持したいが、空の値を使用する場合は、要素に空の文字列を割り当てます。

$array[3] = $array['foo'] = '';

構文の他に、 unset() の使用と要素への ''の割り当ての間には論理的な違いがあります。最初の人はThis doesn't exist anymore,を言い、2番目の人はThis still exists, but its value is the empty string.を言います

数字を扱っているのであれば、0を代入するのがより良い選択肢かもしれません。したがって、ある会社がモデルXL1000スプロケットの製造を中止した場合、その在庫は次のように更新されます。

unset($products['XL1000']);

しかし、それが一時的にXL1000スプロケットを使い果たしたが、今週後半に工場から新しい出荷品を受け取ることを計画していたなら、これはより良いです:

$products['XL1000'] = 0;

unset() 要素の場合、PHPは配列を調整し、それでもループが正しく機能するようにします。欠けている穴を埋めるために配列を圧縮することはありません。これは、配列が数値のように見える場合でも、すべての配列が連想配列であると言うときの意味です。これが例です:

// Create a "numeric" array
$animals = array('ant', 'bee', 'cat', 'dog', 'elk', 'fox');
print $animals[1];  // Prints 'bee'
print $animals[2];  // Prints 'cat'
count($animals);    // Returns 6

// unset()
unset($animals[1]); // Removes element $animals[1] = 'bee'
print $animals[1];  // Prints '' and throws an E_NOTICE error
print $animals[2];  // Still prints 'cat'
count($animals);    // Returns 5, even though $array[5] is 'fox'

// Add a new element
$animals[ ] = 'gnu'; // Add a new element (not Unix)
print $animals[1];  // Prints '', still empty
print $animals[6];  // Prints 'gnu', this is where 'gnu' ended up
count($animals);    // Returns 6

// Assign ''
$animals[2] = '';   // Zero out value
print $animals[2];  // Prints ''
count($animals);    // Returns 6, count does not decrease

配列を密集した数値配列に圧縮するには、 array_values() を使用します。

$animals = array_values($animals);

あるいは、 array_splice() は自動的に配列にインデックスを付け直して穴を空けないようにします。

// Create a "numeric" array
$animals = array('ant', 'bee', 'cat', 'dog', 'elk', 'fox');
array_splice($animals, 2, 2);
print_r($animals);
Array
(
    [0] => ant
    [1] => bee
    [2] => elk
    [3] => fox
)

これは、配列をキューとして使用していて、ランダムアクセスを許可しながらキューから項目を削除する場合に便利です。配列から最初または最後の要素を安全に削除するには、それぞれ array_shift()array_pop() を使用します。

5
Star

配列からの複数の断片化された要素のunset()

unset()はここで何度か言及されていますが、unset()は複数の変数を受け入れて、1回の操作で配列から連続していない複数の要素を簡単に削除できることをまだ言及していません。

// Delete multiple, noncontiguous elements from an array
$array = [ 'foo', 'bar', 'baz', 'quz' ];
unset( $array[2], $array[3] );
print_r($array);
// Output: [ 'foo', 'bar' ]

動的にunset()

unset()は削除するキーの配列を受け付けないため、以下のコードは失敗します(ただし、動的にunset()を使用する方が少し簡単になります)。

$array = range(0,5);
$remove = [1,2];
$array = unset( $remove ); // FAILS: "unexpected 'unset'"
print_r($array);

代わりに、unset()をforeachループで動的に使用できます。

$array = range(0,5);
$remove = [1,2];
foreach ($remove as $k=>$v) {
    unset($array[$v]);
}
print_r($array);
// Output: [ 0, 3, 4, 5 ]

配列をコピーして配列キーを削除する

まだ言及されていない別の方法もあります。時々、特定の配列キーを取り除く最も簡単な方法は、単に$ array1を$ array2にコピーすることです。

$array1 = range(1,10);
foreach ($array1 as $v) {
    // Remove all even integers from the array
    if( $v % 2 ) {
        $array2[] = $v;
    }
}
print_r($array2);
// Output: [ 1, 3, 5, 7, 9 ];

明らかに、テキスト文字列にも同じ方法が適用されます。

$array1 = [ 'foo', '_bar', 'baz' ];
foreach ($array1 as $v) {
    // Remove all strings beginning with underscore
    if( strpos($v,'_')===false ) {
        $array2[] = $v;
    }
}
print_r($array2);
// Output: [ 'foo', 'baz' ]
5

キーに基づいて配列要素を削除します。

以下のようにunset関数を使用してください。

$a = array(
       'salam',
       '10',
       1
);

unset($a[1]);

print_r($a);

/*

    Output:

        Array
        (
            [0] => salam
            [2] => 1
        )

*/

値に基づいて配列要素を削除します。

array_search関数を使用して要素キーを取得し、上記の方法を使用して以下のように配列要素を削除します。

$a = array(
       'salam',
       '10',
       1
);

$key = array_search(10, $a);

if ($key !== false) {
    unset($a[$key]);
}

print_r($a);

/*

    Output:

        Array
        (
            [0] => salam
            [2] => 1
        )

*/
4
MahdiY

次のコードを使用してください。

$arr = array('orange', 'banana', 'Apple', 'raspberry');
$result = array_pop($arr);
print_r($result);
4
<?php
    $array = array("your array");
    $array = array_diff($array, ["element you want to delete"]);
?>

変数$arrayにあなたの配列を作成し、それから私が '削除したい要素'を置いたところにあなたは次のようなものを入れます:複数のアイテムを削除する場合は、「a」、「b」のようにします。

<?php
    // If you want to remove a particular array element use this method
    $my_array = array("key1"=>"value 1", "key2"=>"value 2", "key3"=>"value 3");

    print_r($my_array);
    if (array_key_exists("key1", $my_array)) {
        unset($my_array['key1']);
        print_r($my_array);
    }
    else {
        echo "Key does not exist";
    }
?>

<?php
    //To remove first array element
    $my_array = array("key1"=>"value 1", "key2"=>"value 2", "key3"=>"value 3");
    print_r($my_array);
    $new_array = array_slice($my_array, 1);
    print_r($new_array);
?>


<?php
    echo "<br/>    ";
    // To remove first array element to length
    // starts from first and remove two element
    $my_array = array("key1"=>"value 1", "key2"=>"value 2", "key3"=>"value 3");
    print_r($my_array);
    $new_array = array_slice($my_array, 1, 2);
    print_r($new_array);
?>

出力

 Array ( [key1] => value 1 [key2] => value 2 [key3] =>
 value 3 ) Array (    [key2] => value 2 [key3] => value 3 )
 Array ( [key1] => value 1 [key2] => value 2 [key3] => value 3 )
 Array ( [key2] => value 2 [key3] => value 3 )
 Array ( [key1] => value 1 [key2] => value 2 [key3] => value 3 )
 Array ( [key2] => value 2 [key3] => value 3 )
4

非整数キーを持つ連想配列の場合

単にunset($array[$key])が機能するでしょう。

整数キーを持つ配列の場合、そしてキーを管理したい場合は、

  1. $array = [ 'mango', 'red', 'orange', 'grapes'];

    unset($array[2]);
    $array = array_values($array);
    
  2. array_splice($array, 2, 1);

2
Rahul Patel

インデックスの順序を保ちながら配列の最初の項目を削除する方法と、最初の項目のキー名がわからない場合の2つの方法.

解決策1

// 1 is the index of the first object to get
// NULL to get everything until the end
// true to preserve keys
$array = array_slice($array, 1, null, true);

解決策2

// Rewinds the array's internal pointer to the first element
// and returns the value of the first array element.
$value = reset($array);
// Returns the index element of the current array position
$key = key($array);
unset($array[$key]);

このサンプルデータの場合:

$array = array(10 => "a", 20 => "b", 30 => "c");

あなたはこの結果を得なければなりません:

array(2) {
  [20]=>
  string(1) "b"
  [30]=>
  string(1) "c"
}
2
Nabi K.A.Z.

キーを取得し、見つかった場合はunsetで削除するには、array_searchを使用します。

if (($key = array_search('Word', $array)) !== false) {
    unset($array[$key]);
}
1
mehdi

$x = array(1, 2, 3, 4, 5);
var_dump($x);
unset($x[3]); // Here is the key to be deleted
echo '<br>';
array_values($x);
var_dump($x);

1

これは役立つかもしれません...

<?php
    $a1 = array("a"=>"red", "b"=>"green", "c"=>"blue", "d"=>"yellow");
    $a2 = array("a"=>"purple", "b"=>"orange");
    array_splice($a1, 0, 2, $a2);
    print_r($a1);
?>

結果は次のようになります。

Array ( [0] => purple [1] => orange [c] => blue [d] => yellow )
1
Klajdi Dosti

unsetはインデックスを変更しませんが、array_spliceは以下を行います。

$arrayName = array('1' => 'somevalue',
                   '2' => 'somevalue1',
                   '3' => 'somevalue3',
                   500 => 'somevalue500',
                  );


    echo $arrayName['500'];
    //somevalue500
    array_splice($arrayName, 1, 2);

    print_r($arrayName);
    //Array ( [0] => somevalue [1] => somevalue500 )


    $arrayName = array( '1' => 'somevalue',
                        '2' => 'somevalue1',
                        '3' => 'somevalue3',
                        500 => 'somevalue500',
                      );


    echo $arrayName['500'];
    //somevalue500
    unset($arrayName[1]);

    print_r($arrayName);
    //Array ( [0] => somevalue [1] => somevalue500 )
1
inrsaurabh

あなたがインデックスを知っているならば:

$arr = ['a', 'b', 'c'];
$index = 0;

unset($arr[$index]);  // result: $arr = ['b', 'c']

インデックスがわからない場合は、最初に値を検索する必要があります。

$arr = ['a', 'b', 'c'];
$index = array_search('a',$arr);

unset($arr[$index]);  // result: $arr = ['b', 'c']
0
Ahmad Mobaraki

そのオブジェクトの参照によって配列の特定のオブジェクトを削除する場合は、次の操作を実行できます。

unset($array[array_search($object,$array)]);

例:

<?php
class Foo
{
    public $id;
    public $name;
}

$foo1 = new Foo();
$foo1->id = 1;
$foo1->name = 'Name1';

$foo2 = new Foo();
$foo2->id = 2;
$foo2->name = 'Name2';

$foo3 = new Foo();
$foo3->id = 3;
$foo3->name = 'Name3';


$array = array($foo1,$foo2,$foo3);
unset($array[array_search($foo2,$array)]);

echo '<pre>';
var_dump($array);
echo '</pre>';
?>

結果:

array(2) {
[0]=>
    object(Foo)#1 (2) {
        ["id"]=>
        int(1)
        ["name"]=>
        string(5) "Name1"
    }
[2]=>
    object(Foo)#3 (2) {
        ["id"]=>
        int(3)
        ["name"]=>
        string(5) "Name3"
    }
}

オブジェクトが複数回出現する場合、最初の出現のみが削除されることに注意してください!

0
Sam Tigle

foreachを使って、参照で変数の内容を修正することができます。

<?php
    // Remove all elements in the array
    foreach ($array as &$arr) {
        $arr = null;
    }
0
Pascal Tovohery
$arrayName = array( '1' => 'somevalue',
                    '2' => 'somevalue1',
                    '3' => 'somevalue3',
                  );

print_r($arrayName[1]);
// somevalue
unset($arrayName[1]);

print_r($arrayName);
0
Javed Khan

このタスクを実行する方法は2つあります。 unset() および array_splice()

2つの配列を仮定しましょう:

$array_1 = array('a'=>'One', 'b'=>'Two', 'c'=>'Three');

$array_2 = array('Red', 'Yellow', 'White', 'Black', 'Green');

unset()付き

syntax - unset(array_element)

unset($array_1['a']); // Any valid key
unset($array_2[0]); // Any valid index
  • 配列要素を削除しても、配列インデックスは変わりません。

array_splice()で

syntax - array_splice(array, index, length)

array_splice($array_1, 1, 1); // Remove one element from $array_1 from index 1
array_splice($array_2, 3, 1); // Remove one element from $array_2 from index 3
  • すべての配列要素は、配列から要素を削除した後に再インデックス付けされます
0
Mohammad Wasim

単純にunset()を使って配列を削除することができます。

foreach関数の後で配列を設定解除しなければならないことを忘れないでください。

0
Drake Boein