• ベストアンサー

PHP 配列について

PHPで簡単なプログラムを作っています。 上手い方法があれば教えてください。 例えば $arr = array(); $arr(0) = "ABC"; $arr(1) = "DEF"; $arr(2) = "GHI"; $arr(3) = "JKL"; $arr(4) = "MNO"; この様な配列があり、これを以下の様に「特定のデータを削除し空いているキーを詰めたい」場合どうしたら良いのでしょうか? この場合は"DEF"を削除。 $arr(0) = "ABC"; $arr(1) = "GHI"; $arr(2) = "JKL"; $arr(3) = "MNO"; アドバイスお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

<?php $arr = array(); $arr{0} = "ABC"; $arr{1} = "DEF"; $arr{2} = "GHI"; $arr{3} = "JKL"; $arr{4} = "MNO"; //最初にDEFが見つかった番号 //なければfalse $hoge = array_search("DEF",$arr,1); //何故こういう書き方をしているかはarray_spliceのマニュアルを見ればわかるかと if($hoge !== false){ array_splice($arr,$hoge,1); } print_r($arr); ?>

NORI-AYU
質問者

お礼

ありがとうございます。 サンプルがまさにやりたかった事です。 助かりました。

その他の回答 (3)

  • umota
  • ベストアンサー率46% (150/324)
回答No.4

ANo.1 です 2 番目(添字=1)の要素を削除する例です。 $arr = array_splice($arr, 1);

NORI-AYU
質問者

お礼

ありがとうございます。 度々すいませんでした。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

$arr = array_values($arr); でいいと思います(下記のソースで確認しました)。   <?php   $arr = array();   $arr[0] = "ABC";   $arr[2] = "GHI";   $arr[3] = "JKL";   $arr[4] = "MNO";   $arr = array_values($arr);   print_r($arr);   ?> result:   Array ( [0] => ABC [1] => GHI [2] => JKL [3] => MNO )

NORI-AYU
質問者

お礼

ありがとうございます。 試してみたのですが、上手くいきませんでした。 $arr = array(); $arr(0) = "ABC"; $arr(1) = "DEF"; $arr(2) = "GHI"; $arr(3) = "JKL"; $arr(4) = "MNO"; $arr(1) = ""; $arr = array_values($arr); print_r($arr); 結果: Array ( [0] => ABC [1] => [2] => GHI [3] => JKL [4] => MNO ) お願いいたします。

NORI-AYU
質問者

補足

ごめんなさい。 $arr = array(); $arr(0) = "ABC"; $arr(1) = "DEF"; $arr(2) = "GHI"; $arr(3) = "JKL"; $arr(4) = "MNO"; unset($arr(1)); $arr = array_values($arr); で出来ました。 ありがとうございました。

  • umota
  • ベストアンサー率46% (150/324)
回答No.1

> どうしたら良いのでしょうか? マニュアル(array_splice)を読む。

NORI-AYU
質問者

お礼

ありがとうございます。 マニュアル(array_splice)を読んだのですが、今回の場合にどう使うかが分かりません。 簡単で良いのでサンプルを頂けるとありがたいです。 お願いします。

関連するQ&A