50, "Mary" => 30, "Peter"/> 50, "Mary" => 30, "Peter">

ホームページ  >  記事  >  バックエンド開発  >  PHPで2つの配列を分割する方法

PHPで2つの配列を分割する方法

PHPz
PHPzオリジナル
2023-04-20 10:14:51635ブラウズ

Web 開発では、いくつかの配列に対して計算を実行する必要があることがよくありますが、一般的な操作の 1 つは 2 つの配列を除算することです。この記事では、PHPで2つの配列の除算演算を実装する方法を紹介します。

PHP では、配列のキー名をインデックスとして使用し、配列のキー値を要素として使用して配列を構築できます。たとえば、次は販売データの保存に使用される配列です。

$sales = [
    "John" => 50,
    "Mary" => 30,
    "Peter" => 20,
];

上記の配列は、ジョンが 50 個の商品を販売し、メアリーが 30 個の商品を販売し、ピーターが 20 個の商品を販売したことを示しています。

これらの営業担当者の売上高と総売上高の割合を計算したいとします。最初に総売上高を計算し、次に各営業員の売上高の割合を個別に計算する必要があります。

まず、array_sum() 関数を使用して配列内のすべての要素の合計を計算し、総売上高を取得します。コードは次のとおりです。

$total_sales = array_sum($sales);

次に、array_map() 関数を使用して各販売員の売上を処理し、それを総売上で割って、売上に占める各販売員の割合を取得します。 。コードは次のとおりです。

$sales_percentage = array_map(function($sales) use($total_sales) {
    return $sales / $total_sales;
}, $sales);

上記のコードは、各営業担当者の売上高をパラメータとして受け取り、それを総売上高で除算して売上率を取得する無名関数を使用します。 use キーワードを使用して、匿名関数で外部変数 $total_sales を使用します。

最後に、array_combine() 関数を使用して 2 つの配列を結合し、最終結果を取得します。コードは次のとおりです。

$result = array_combine(array_keys($sales), $sales_percentage);

上記のコードは、array_keys() 関数を使用して、$sales 配列のすべてのキー名を取得し、それをarray_combine() 関数の最初のパラメーターは、計算された売上の割合を 2 番目のパラメーターとして使用します。この関数は、キー名とキー値を結合して、最終結果の配列となる連想配列を作成します。

完全なコードは次のとおりです:

$sales = [
    "John" => 50,
    "Mary" => 30,
    "Peter" => 20,
];
$total_sales = array_sum($sales);
$sales_percentage = array_map(function($sales) use($total_sales) {
    return $sales / $total_sales;
}, $sales);
$result = array_combine(array_keys($sales), $sales_percentage);
print_r($result);

出力結果は次のとおりです:

Array
(
    [John] => 0.5
    [Mary] => 0.3
    [Peter] => 0.2
)

上記の結果は、John の売上が総売上の 50% を占め、Mary の売上が全体の 50% を占めていることを示しています。ピーターの売上は総売上の 50%、ピーターの売上は総売上の 30%、ピーターの売上は 20% を占めています。

実際の開発では、多次元配列や異なる長さの配列など、より複雑な配列に対して除算演算を実行する必要がある場合があります。この場合、ループまたは再帰を使用して除算演算を実装できます。

つまり、PHP は、除算演算を含む配列に対するさまざまな演算を簡単に実装できる豊富な関数と言語機能を提供します。この記事を学習することで、PHP 配列を分割する方法とテクニックを習得できたと思います。

以上がPHPで2つの配列を分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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