列の値を使用して 2D 配列データをグループ化し、3D 配列を生成します
P粉022140576
2023-08-22 18:37:00
<p>特定の列の値に基づいてグループ化したい多次元配列があります。 </p>
<p><code>level</code>でグループ化したいのですが、レベルの値が事前に分かりません。したがって、<code>for</code> ループのように <code>while $i < 7</code> とは言えません。<code>7</code> がわからないからです。 ; は最大値のレベルキーですが、わかっていてもそれを行う必要があるかどうかはわかりません。 </p>
<pre class="brush:php;toolbar:false;">[
['cust' => 'XT8900', 'type' => 'standard', 'level' => 1],
['cust' => 'XT8944', 'type' => 'standard', 'level' => 1],
['cust' => 'XT8922', 'type' => 'プレミア', 'レベル' => 3],
['cust' => 'XT8816', 'type' => 'permier', 'level' => 3],
['cust' => 'XT7434', 'type' => 'standard', 'level' => 7],
]</pre>
<p>望ましい結果: </p>
<pre class="brush:php;toolbar:false;">配列 (
[1] => 配列 (
[0] => 配列 (
[カスタム] => XT8900
[タイプ] => 標準
)
[1] => 配列 (
[顧客] => XT8944
[タイプ] => 標準
)
)
[3] => 配列 (
[2] => 配列 (
[顧客] => XT8922
[タイプ] => プレミア
)
[3] => 配列 (
[顧客] => XT8816
[タイプ] => パーミエ
)
)
[7] => 配列 (
[4] => 配列 (
[顧客] => XT7434
[タイプ] => 標準
)
)
)</pre>
<p><br /></p>
最良のアプローチは、初期配列の構築を制御できる場合は、エントリを追加するときに最初に配列を設定することです。
コントロールがない場合は、並べ替え用の一時配列が構築されます:
リーリーこれにより、すべての参照がまとめられた、必要なフォームが得られます。
可能であれば、最初に次のように配列を構築します。
まず、レベル
でグループ化する必要があります。foreach を使用して配列をループし、レベルが前の項目と同じかどうかを確認してから、その配列でグループ化します
リーリーprint($grouparr);出力は希望の形式で表示されます
あなたも試すことができます
リーリー表示されます
リーリー ###または### リーリー表示されます
リーリー