array_splice 関数の結果の代入

WBOY
WBOYオリジナル
2016-06-23 13:33:201010ブラウズ

$arr1 = 配列(1,2,3);
$arr2 = 配列($arr2,1,1);


結果は Array ( [0] => 4 ) です
array_splice 関数が最終的に完了した後に代入演算子が実行されるのは当然です
その後、array_splice($arr2,1,1 によって取得される) 配列 $arr2 の値になります。 ) は ( 3,4) である必要があります。
その後、「=」を演算すると、$arr1 配列の内容は (3,4) になるはずですが、実際には全体を実行します
$arr1 = array_splice($arr2,1,1) , しかし、 $arr1 を取得します 配列の内容は (4) なので、これを解きます。

ディスカッションへの返信 (解決策)

どうしてですか? array_splice($arr2,1,1) は $arr2 の最初の要素から 1 つの要素を削除することです (0 から数えます)。削除された要素を返します

あなたは彼に 1 を削除するように頼むだけで、彼は自分で 2 を削除することは決してありません



array_slice() 関数は、条件に基づいて配列内の値を取り出し、それを返します。

あなたはまだこの関数の意味を理解していません。 。 。 。 。 。あなたが書いたコードの意味は、配列の 2 番目の位置から始めて、値を取得することです

上の階の皆さん、私の当初の意図は、 array_splice を使用して $arr2 の 2 番目の位置を削除し、それを $arr1 に代入し、残りを表示することです配列内の値を入力し、$arr1 = array_splice($arr2,1,1) のようにコードを記述します。

結果がわかりません。インターネット上の array_splice の定義は、配列内の指定された部分の値を削除または置き換えるというものですが、 $arr1 = array_splice($arr2,1,1) の結果がわかりません。 ) コードは代わりに削除したい値です。 $arr1 = array_splice($arr2,1,1) は array_slice($arr2,1,1) と同等ですか?

マニュアルは非常に明確です: 削除されたユニットを含む配列を返します
戻り結果だけを見ると、array_splice($arr2,1,1) は array_slice($arr2,1,1) と同等です

ただし、前者はオリジナルです$arr2 の状態が変更されました



ありがとうございます、この関数の戻り値は情報本には明記されていませんでしたが、この関数は元の配列の残りのデータを返すものだとずっと思っていました。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。