- ベストアンサー
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"; アドバイスお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
<?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); ?>
その他の回答 (3)
- umota
- ベストアンサー率46% (150/324)
ANo.1 です 2 番目(添字=1)の要素を削除する例です。 $arr = array_splice($arr, 1);
お礼
ありがとうございます。 度々すいませんでした。
- shimix
- ベストアンサー率54% (865/1590)
$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 )
お礼
ありがとうございます。 試してみたのですが、上手くいきませんでした。 $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 ) お願いいたします。
補足
ごめんなさい。 $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)
> どうしたら良いのでしょうか? マニュアル(array_splice)を読む。
お礼
ありがとうございます。 マニュアル(array_splice)を読んだのですが、今回の場合にどう使うかが分かりません。 簡単で良いのでサンプルを頂けるとありがたいです。 お願いします。
お礼
ありがとうございます。 サンプルがまさにやりたかった事です。 助かりました。