プロが教えるわが家の防犯対策術!

指定した要素を取り除いて再び配列を生成する方法で悩んでいます。

具体的には
1,2,3,4,5,6
という配列のとき、「3」を指定したときは
1,2,4,5,6
と配列し直してくれる関数などありますでしょうか?

よろしくお願いします。

A 回答 (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);
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/08/09 17:59

こんな関数ですか?


function deletearr( $arr, $delid){
if(count($arr) == 0) return null;
foreach($arr as $d){
if($d != $delid) $newarr[] = $d;
}
return $newarr;
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/08/09 22:09

ないと思います。


配列の先頭から順にたどりながら、指定した値を取り除いた別の配列を作る、そういう関数を自分で作る必要があるでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/08/09 13:14

数字だとわかりにくいので、ちょっと書き換えて、こんな感じで。



<?PHP
$array=Array("a","b","c","d","e","f");
foreach (array_keys($array, "c") as $val){
unset($array[$val]);
}
print_r($array);
?>
    • good
    • 0
この回答へのお礼

試させていただきました。

すみませんが2点問題があります。
・除外指定をキーでしたい(ここでは「2」)
・最終的には キー「2」にd、キー「3」にe、、、のように詰めたい

大きなヒントにはなりました。(自分でも努力をつづけます)
有難うございます。

お礼日時:2007/08/09 13:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!