7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPで配列要素を削除する方法

Last updated at Posted at 2016-01-16

PHPで配列要素を簡単に削除する方法を教えてもらったのでメモとして残しておきます。(@memory-agape ちゃんありがとう!)

環境

  • PHP5系

やりたいこと

以下のように、特定の値(今回の場合は'c')に一致する配列要素だけを削除する。

// 元の配列
$array1 = array('a', 'b', 'c', 'd');

//$array1から'c'だけを削除した配列がほしい
array('a', 'b', 'd');

実現方法

PHP Doucmentを全部読めていない初心者なので、一瞬「for文で実現するしかないのか...?」と暗澹たる思いでしたが、array_diffという標準ライブラリで実現できました。

// 元の配列
$array1 = array('a', 'b', 'c', 'd');
// 除外対象の値
$value = 'c';

$result = array_diff($array1, array($value));
var_dump($result);// 'c'を除いた配列が表示される。

CLIでも簡単に確認できます。

$php -r "var_dump(array_diff(array('a','b','c','d'),array('c')));"
array(3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [3]=>
  string(1) "d"
}

注意点として、生成された配列のindexは0からの連番ではない可能性があります。(上記の例だと$result[2]が無い)

連番に戻したい場合は、array_values関数を使うと良いでしょう。(@Hirakuさん ありがとうございます!)

$php -r "var_dump(array_values(array_diff(array('a','b','c','d'),array('c'))));"
array(3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "d"
}

参考

7
7
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?