グループごとにグループ化し、各グループの出現の合計を計算し、データを書式設定された文字列として出力します。
P粉970736384
2023-09-05 22:43:27
<p>2つの列の値に基づいて、いくつかの行のデータをグループ化して合計したいと考えています。 </p>
<p>私の入力は次のとおりです:</p>
<pre class="brush:php;toolbar:false;">$array = [
['FA'、12.9]、
['FA'、12.9]、
['FB'、12.2]、
['FC'、12.3]、
['FA'、12.9]、
['FB'、12.9]、
['FA'、12.4]、
];</pre>
<p>グループ化された行の値を文字列として出力し、その後に <code>x</code> と合計出現数を次の形式で出力したいと考えています。
<pre class="brush:php;toolbar:false;">FA 12.9x3
FB 12.2x3</pre>
<p>各グループ内の値の出現をカウントするコードを作成しましたが、次の形式で出力する方法がわかりません: </p>
<pre class="brush:php;toolbar:false;">$new = [];
foreach ($array as $key=> $value) {
if (!array_key_exists($value[0],$new)) {
$new[$value[0]]=[strval($value[1])=>1];
}
それ以外 {
if (!array_key_exists(strval($value[1]),$new[$value[0]])) {
$new[$value[0]][strval($value[1])]=1;
// $no =1;
}
それ以外 {
$count= $new[$value[0]];
$count=$count[strval($value[1])];
$count =1;
$new[$value[0]][strval($value[1])]=$count;
}
}
}</pre>
<p>このコードを最適化して、正しい形式で印刷できますか? </p>
<p>望ましい出力: </p>
<pre class="brush:php;toolbar:false;">FA 12.9x3
FB12.2x1
FC 12.3x1
FB12.9x1
FA 12.4x1
array_reduce の使用
出力:特別で便利な方法で、項目を名前でグループ化できます。次に、値とカウントでグループ化します。このアイデアは、累積された値をキーとして含む配列を渡すことです。
リーリーリーリー