ホームページ  >  記事  >  バックエンド開発  >  PHP 配列要素の置換をすぐにマスターできるようにします (詳細な例)

PHP 配列要素の置換をすぐにマスターできるようにします (詳細な例)

WBOY
WBOYオリジナル
2021-11-08 12:01:004384ブラウズ

前回の記事「複数の配列の差分を取得する3つの方法を学ぶ(集)」では、PHPで配列の差分を取得する方法について、関連知識を詳しく紹介しました。 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

# は PHP で渡すことができます##array_splice

関数は配列から要素を削除し、新しい要素で置き換えます。array_splice関数の基本的な構文形式は次のとおりです: <pre class="brush:php;toolbar:false">array_splice(array,start,length,array)</pre>何をする必要がありますか


最初のパラメータ

array

は、操作する必要がある配列を表します。パラメータ start は、削除されたデータの開始位置を表すために使用されます。パラメータの長さは、削除する要素の数を指定するために使用され、返される結果の配列の長さでもあります。2 番目のパラメータ array は、配列を指定するために使用されます。元の配列に挿入される要素。 パラメータ

start

が正の数の場合、配列内の値で指定されたオフセットからの削除を開始することを意味します。このパラメータが負の数の場合、値で指定されたオフセットにある配列の末尾から削除を開始することを意味します。 0 の場合は、最初の要素から削除されます。 Parameter

length

正の数の場合は削除する要素の数を意味し、負の数の場合は ## からカウントダウン 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);
?>
出力結果:


上の例では、PHP 配列要素の置換をすぐにマスターできるようにします (詳細な例)array_splice

関数を使用して配列要素を置き換えていますが、他の 2 つの方法を見てみましょう。

#array_replace

<strong><span style="max-width:90%"></span>Function</strong>PHP では次のように渡すことができますarray_replace 最初の配列の値を次の配列の値に置き換える関数

array_replace

関数の基本的な構文形式は次のとおりです: <pre class="brush:php;toolbar:false">array_replace(array1,array2,array3...)</pre> 必要なもの

パラメータ array1 は置換する必要がある配列を表し、パラメータ array2 は置換する array1 の値を指定する配列を表し、array3 は複数の配列を指定する配列を表します。置き換える必要があります。以降の値は上書きされます。以前の値。返される結果は置換された配列です。関数にエラーがある場合、返される結果は

NULL
です。

例を通じて array_replace 関数の使用法を見てみましょう。例は次のとおりです:

<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("a"=>"orange","burgundy");
print_r(array_replace($a1,$a2));
?>

出力結果:


上記の例では、最初の配列だけでなく2番目の配列にもキー名が存在するため、このとき最初の配列の値が2番目の配列の値に置き換えられます。配列内の最初のキー名が別になっており、他の配列にそのようなキー名が存在しない場合、このときキー名と値は変更されません。

PHP 配列要素の置換をすぐにマスターできるようにします (詳細な例)これは、キーが最初の配列にのみ存在する場合です。2 番目以降の配列にのみ存在するキーを見てみましょう。別の例を見てみましょう:

<?php
$a1=array("a"=>"red","green");
$a2=array("a"=>"orange","b"=>"burgundy");
print_r(array_replace($a1,$a2));
?>

出力結果:



上記の例から、キーが最初の配列に存在しない場合、キーは最初の配列にのみ存在することがわかります。配列が 2 つある場合、キーの名前と値は最初の配列で再作成されます。上記の例は 2 セットの配列です。3 セットの配列を見てみましょう。

PHP 配列要素の置換をすぐにマスターできるようにします (詳細な例)例は次のとおりです以下に続きます:

<?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 配列要素の置換をすぐにマスターできるようにします (詳細な例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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