に割り当てる:配列から要素を削除し、私はこの配列を持つ変数
$cars = array("Volvo", "BMW", "Toyota");
$cars_without_volvo=unset($cars[0]);
print_r($cars);
print_r($cars_without_volvo);die;
は、私は、後で使用する$cars
と$cars_without_volvo
の両方が必要です。上記はうまくいきません。
に割り当てる:配列から要素を削除し、私はこの配列を持つ変数
$cars = array("Volvo", "BMW", "Toyota");
$cars_without_volvo=unset($cars[0]);
print_r($cars);
print_r($cars_without_volvo);die;
は、私は、後で使用する$cars
と$cars_without_volvo
の両方が必要です。上記はうまくいきません。
あなたは、あなたは二つの異なる配列を持っているだろう、それから$cars_without_volvo
と設定解除に配列をコピーすることができます。 unset()
は何も返さず、要素や変数を直接設定解除するために使用されます。当然の
これは、我々は最初の要素の設定を解除するのでVolvo
は、常に$cars
配列の最初の要素であることを前提としています。
$cars = array("Volvo", "BMW", "Toyota");
$cars_without_volvo = $cars;
unset($cars_without_volvo[0]);
print_r($cars);
print_r($cars_without_volvo);
出力
Array (
[0] => Volvo
[1] => BMW
[2] => Toyota
)
Array (
[1] => BMW
[2] => Toyota
)
また、以下のいずれかで上方unset()
ラインを置き換えることにより、array_search()
(demo)を使用して、動的Volvo
要素のキーを見つけることができます。他の回答に示すようにarray_shift()
を使用して
unset($cars_without_volvo[array_search("Volvo", $cars_without_volvo)]);
最も可能性の高い、より良いアプローチです - 削除したい要素が最初のものである場合。最初または最後のインデックスと異なるインデックスの要素を削除する場合は、この方法を使用するほうが簡単です。
array_shift()
array_pop
は端から削除し、アレイからの最初の要素を削除します
<?php
$cars = array("Volvo", "BMW", "Toyota");
$volvos = array_shift($cars);
var_dump($cars, $volvos);
は出力:
array(2) { [0]=> string(3) "BMW" [1]=> string(6) "Toyota" } string(5) "Volvo"
ここでそれをチェックアウト:ここhttps://3v4l.org/nZqul ドキュメント:http://php.net/manual/en/function.array-shift.php
これは、配列をコピーして最初の要素を解除するよりも、(OPコードに基づく)私の答えが使用しているより良いアプローチです。 – Qirel
を 'unset'は何も返しません。おそらく 'array_shift'を探しているでしょう。 – deceze