- ベストアンサー
配列 一部除外してソート?
指定した要素を取り除いて再び配列を生成する方法で悩んでいます。 具体的には 1,2,3,4,5,6 という配列のとき、「3」を指定したときは 1,2,4,5,6 と配列し直してくれる関数などありますでしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
array_merge( )で引数が1個だとインデックスを付け直してくれます <?PHP $array=Array("a","b","c","d","e","f"); unset($array[2]); print_r($array); echo "<br>\n"; $array = array_merge($array); print_r($array);
その他の回答 (3)
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
こんな関数ですか? function deletearr( $arr, $delid){ if(count($arr) == 0) return null; foreach($arr as $d){ if($d != $delid) $newarr[] = $d; } return $newarr; }
お礼
no.4の回答で解決しましたが、試させていただきます。 有難うございました。
- shirayukix
- ベストアンサー率43% (90/207)
ないと思います。 配列の先頭から順にたどりながら、指定した値を取り除いた別の配列を作る、そういう関数を自分で作る必要があるでしょう。
お礼
自作するしかないのですね。 初心者なもので少し苦労しています。 ご回答有難うございました。
- yambejp
- ベストアンサー率51% (3827/7415)
数字だとわかりにくいので、ちょっと書き換えて、こんな感じで。 <?PHP $array=Array("a","b","c","d","e","f"); foreach (array_keys($array, "c") as $val){ unset($array[$val]); } print_r($array); ?>
お礼
試させていただきました。 すみませんが2点問題があります。 ・除外指定をキーでしたい(ここでは「2」) ・最終的には キー「2」にd、キー「3」にe、、、のように詰めたい 大きなヒントにはなりました。(自分でも努力をつづけます) 有難うございます。
お礼
解決できそうです! 有難うございます。