前回の記事「複数の配列の差分を取得する3つの方法を学ぶ(集)」では、PHPで配列の差分を取得する方法について、関連知識を詳しく紹介しました。 PHP で配列内の要素を置換する方法に関する関連知識をご覧ください。皆様のお役に立てれば幸いです。
前の記事では、PHP で文字列を置換する場合は、str_replace
関数と substr_replace を使用できることを説明しました。
() 関数、文字列、配列は PHP において非常に重要なデータ型ですが、配列内の要素を置き換えるにはどうすればよいでしょうか?
PHP では、array_splice
関数、array_replace
関数、および array_replace_recursive
関数を使用して配列内の要素を置換できます。これら 3 つの機能の使用方法をそれぞれ見てみましょう。
<strong>#array_splice<span style="font-size: 20px;"></span></strong>
Function
関数は配列から要素を削除し、新しい要素で置き換えます。array_splice
関数の基本的な構文形式は次のとおりです: <pre class="brush:php;toolbar:false">array_splice(array,start,length,array)</pre>
何をする必要がありますか
最初のパラメータ
は、操作する必要がある配列を表します。パラメータ start
は、削除されたデータの開始位置を表すために使用されます。パラメータの長さは、削除する要素の数を指定するために使用され、返される結果の配列の長さでもあります。2 番目のパラメータ array
は、配列を指定するために使用されます。元の配列に挿入される要素。 パラメータ
が正の数の場合、配列内の値で指定されたオフセットからの削除を開始することを意味します。このパラメータが負の数の場合、値で指定されたオフセットにある配列の末尾から削除を開始することを意味します。 0
の場合は、最初の要素から削除されます。 Parameter
正の数の場合は削除する要素の数を意味し、負の数の場合は ## からカウントダウン length を削除することを意味します#start
から配列の最後まで、中間の までのすべての要素。このパラメータの値が設定されていない場合は、start パラメータで設定された位置から配列の末尾までのすべての要素が削除されることを意味します。
この関数の戻り結果は、抽出された要素で構成される配列です。
array_splice
関数のアプリケーションを見てみましょう。例は次のとおりです:<?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("a"=>"purple","b"=>"orange"); array_splice($a1,0,2,$a2); print_r($a1); ?>
出力結果:
上の例では、array_splice
関数を使用して配列要素を置き換えていますが、他の 2 つの方法を見てみましょう。<strong><span style="max-width:90%"></span>Function</strong>
PHP では次のように渡すことができますarray_replace 最初の配列の値を次の配列の値に置き換える関数
関数の基本的な構文形式は次のとおりです: <pre class="brush:php;toolbar:false">array_replace(array1,array2,array3...)</pre>
必要なもの
NULL
です。
例を通じて array_replace 関数の使用法を見てみましょう。例は次のとおりです:
<?php $a1=array("a"=>"red","b"=>"green"); $a2=array("a"=>"orange","burgundy"); print_r(array_replace($a1,$a2)); ?>
これは、キーが最初の配列にのみ存在する場合です。2 番目以降の配列にのみ存在するキーを見てみましょう。別の例を見てみましょう:
<?php $a1=array("a"=>"red","green"); $a2=array("a"=>"orange","b"=>"burgundy"); print_r(array_replace($a1,$a2)); ?>出力結果:
例は次のとおりです以下に続きます:
<?php $a1=array("red","green"); $a2=array("blue","yellow"); $a3=array("orange","burgundy"); print_r(array_replace($a1,$a2,$a3)); ?>
出力結果:
上述示例中,出现了三个数组,这时候需要注意的是,后面数组的值会覆盖前面数组的值。
这便是array_replace
函数的基本用法,下面我们继续来看array_replace_recursive
函数的用法。
array_replace_recursive
函数
在PHP中可以通过array_replace_recursive
函数来递归的使用第二个数组的值来替换第二个数组的值。
array_replace_recursive
函数的基本语法格式如下:
array_replace_recursive(array1,array2,array3...)
其中需要注意的是:
参数array1表示的是我们需要被替换的数组,参数array2表示的是指定要替换array1的值的数组,array3表示的是指定多个需要替换的数组,后面的数值会覆盖前面的数值。返回的结果是被替换的数组,如果函数其中有错误的话,返回的结果就是NULL
。
如果数组中没有使用指定的键来规定数组中的元素,那么array_replace_recursive
函数就可以看成是array_replace
函数。
如果一个键在第一个数组和第二个数组中都存在,这时候第二个数组的值会替换第一个数组的值,如果一个键只存在于第一个数组,那么这个值会保存,如果一个键只存在于第二个数组,这时候会在第一个数组创建一个一样的元素。
下面我们通过示例来看一下array_replace_recursive
的使用,示例如下:
<?php $a1=array("a"=>array("red"),"b"=>array("green","blue")); $a2=array("a"=>array("yellow"),"b"=>array("black")); $a3=array("a"=>array("orange"),"b"=>array("burgundy")); print_r(array_replace_recursive($a1,$a2,$a3)); ?>
输出结果:
上述示例中,多个数组后面的数值会覆盖前面的数值。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上がPHP 配列要素の置換をすぐにマスターできるようにします (詳細な例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。