ホームページ  >  に質問  >  本文

グループごとにグループ化し、各グループの出現の合計を計算し、データを書式設定された文字列として出力します。

<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

P粉970736384P粉970736384382日前438

全員に返信(1)返信します

  • P粉323050780

    P粉3230507802023-09-06 09:57:01

    array_reduce の使用特別で便利な方法で、項目を名前でグループ化できます。次に、値とカウントでグループ化します。このアイデアは、累積された値をキーとして含む配列を渡すことです。 リーリー

    出力:

    リーリー

    返事
    0
  • キャンセル返事