アレイの一部を削除する必要があります。配列の例を次に示します。
Array ( [0] => one [1] => two [2] => three [3] => four [4] => five )
変数は、配列内の次の値のいずれかに基づくことができます。「3つ」あることを示唆しています。1 つ、2 つと他のすべてを削除する必要があります。
ループを使用する必要のない標準的な方法、または適切な解決策はありますか?
そのためにarray_spliceを使用できます
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input is now array("red", "yellow")
これは@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を指定する必要があります。
ループを使用したくない場合は、array_splice を使用できます。
$input = array("red", "green", "blue", "yellow");
array_splice($input, $varaible, -1);
// $input is now array("red", "yellow")