0
[0] => LR-153-TKW
[1] => Klaten
[2] => Rectangular
[3] => 12x135x97

私はこのような配列を持っています。マザーアレイから12x135x97を完全に削除したいので、どうすればよいですか?

4

4 に答える 4

4

を使用できますunset($arr[3]);。その配列インデックスを削除します。配列値を削除する場合はいつでも、 PHPのunset()メソッドを使用できます。

あなたがあなたのコメントに尋ねられたように: basically i just want to remove all index that have "X**X" this pattern digit 'x' digit

使用できるコードは次のとおりです。

    $arr = array("LR-153-TKW", "Klaten", "Rectangular", "12x135x97", "xxxx");
    $pattern_matched_array = preg_grep("/^[0-9]+x[0-9]+x[0-9]*/", $arr);
    if(count($pattern_matched_array) > 0)
    {
        foreach($pattern_matched_array as $key => $value)
        {
            unset($arr[$key]);
        }
    }
    print_r($arr);
于 2012-08-31T08:39:25.307 に答える
1

PHPにはunset()関数があります。配列の変数またはインデックスを削除するために使用できます。

unset($your_var[3]);

http://php.net/manual/en/function.unset.phpを参照してください

于 2012-08-31T08:41:06.493 に答える
0

unsetを使用して、これを実行できることを確認します。

for($i = 0; $i < count($array); $i++){
    if($i == "12x135x97"){
        unset($array[i]);
        break;
    }
}

キーを知らない限り、次のことができます。

unset($array[3]);

配列が数千のアイテムの長さである場合、これは最も時間効率が良くありませんが、このジョブにはそれで十分です。

それをメソッドに変えることは、より良いコーディングになります。

function removeItem($item){
    for($i = 0; $i < count($array); $i++){
        if($i == $item){
            unset($array[i]);
            break;
        }
    }
    return $array;
}

そしてそれを次のように呼びます:

removeItem("12x135x97");
于 2012-08-31T08:41:27.903 に答える
0

多くのオプションがあります。配列キーがわかっている場合は、これを行うことができます

unset($arrayName[3]);

または、常に配列の最後にある場合

array_pop($arrayName);

これにより、配列から最後の値が削除されます

于 2012-08-31T08:42:46.990 に答える