2

アレイの一部を削除する必要があります。配列の例を次に示します。

Array ( [0] => one [1] => two [2] => three [3] => four [4] => five )

変数は、配列内の次の値のいずれかに基づくことができます。「3つ」あることを示唆しています。1 つ、2 つと他のすべてを削除する必要があります。

ループを使用する必要のない標準的な方法、または適切な解決策はありますか?

4

3 に答える 3

8

そのためにarray_spliceを使用できます

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input is now array("red", "yellow")
于 2012-08-17T10:28:17.227 に答える
4

これは@JeroenMoonsarray_spliceを使用しますが、私が提案したarray_searchも実行します

function reduce_my_array($array, $value)
{
    // look for location of $value in $array
    $offset=array_search($value, $array);

    // if not found return original
    if($offset===false) return $array;

    // remove from the found offset to the end of the array
    return array_splice($array, $offset+1);     
}

注:
array_searchは、0になる可能性のあるINDEXを返します。array_spliceは
、オフセットとしてエントリ数を使用する
ため、数値インデックスが0から...の例では、配列スプライスインデックス+1を指定する必要があります。

于 2012-08-17T10:37:31.577 に答える
4

ループを使用したくない場合は、array_splice を使用できます。

$input = array("red", "green", "blue", "yellow");
array_splice($input, $varaible, -1);
// $input is now array("red", "yellow")
于 2012-08-17T10:29:20.700 に答える