• ベストアンサー

配列 一部除外してソート?

指定した要素を取り除いて再び配列を生成する方法で悩んでいます。 具体的には 1,2,3,4,5,6 という配列のとき、「3」を指定したときは 1,2,4,5,6 と配列し直してくれる関数などありますでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

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);

ribiribi
質問者

お礼

解決できそうです! 有難うございます。

その他の回答 (3)

回答No.4

こんな関数ですか? function deletearr( $arr, $delid){ if(count($arr) == 0) return null; foreach($arr as $d){ if($d != $delid) $newarr[] = $d; } return $newarr; }

ribiribi
質問者

お礼

no.4の回答で解決しましたが、試させていただきます。 有難うございました。

回答No.2

ないと思います。 配列の先頭から順にたどりながら、指定した値を取り除いた別の配列を作る、そういう関数を自分で作る必要があるでしょう。

ribiribi
質問者

お礼

自作するしかないのですね。 初心者なもので少し苦労しています。 ご回答有難うございました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

数字だとわかりにくいので、ちょっと書き換えて、こんな感じで。 <?PHP $array=Array("a","b","c","d","e","f"); foreach (array_keys($array, "c") as $val){ unset($array[$val]); } print_r($array); ?>

ribiribi
質問者

お礼

試させていただきました。 すみませんが2点問題があります。 ・除外指定をキーでしたい(ここでは「2」) ・最終的には キー「2」にd、キー「3」にe、、、のように詰めたい 大きなヒントにはなりました。(自分でも努力をつづけます) 有難うございます。

関連するQ&A