使用列值分組2D數組數據,產生3D數組
P粉022140576
2023-08-22 18:37:00
<p>我有一個多維數組,想要根據特定列中的值進行分組。 </p>
<p>我想要依照<code>level</code>分組,但事先不知道level的值。所以,我不能像在<code>for</code>循環中說<code>while $i < 7</code>,因為我不知道<code>7</code>是level鍵的最大值,而且即使我知道也不確定我是否需要這樣做。 </p>
<pre class="brush:php;toolbar:false;">[
['cust' => 'XT8900', 'type' => 'standard', 'level' => 1],
['cust' => 'XT8944', 'type' => 'standard', 'level' => 1],
['cust' => 'XT8922', 'type' => 'premier', 'level' => 3],
['cust' => 'XT8816', 'type' => 'permier', 'level' => 3],
['cust' => 'XT7434', 'type' => 'standard', 'level' => 7],
]</pre>
<p>期望的結果:</p>
<pre class="brush:php;toolbar:false;">Array (
[1] => Array (
[0] => Array (
[cust] => XT8900
[type] => standard
)
[1] => Array (
[cust] => XT8944
[type] => standard
)
)
[3] => Array (
[2] => Array (
[cust] => XT8922
[type] => premier
)
[3] => Array (
[cust] => XT8816
[type] => permier
)
)
[7] => Array (
[4] => Array (
[cust] => XT7434
[type] => standard
)
)
)</pre>
<p><br /></p>
最好的方法是,如果您對建立初始數組有控制權,那麼在新增條目時,只需一開始就設定好。
如果沒有控制權,則建立一個臨時數組進行排序:
這樣可以得到您想要的形式,並且所有引用都在一起。
如果可能的話,一開始就像這樣建立陣列。
首先,你需要依照等級對它們進行分組
使用foreach循環遍歷數組,檢查等級是否與前一個項目相同,然後將其與該數組分組
print($grouparr);的輸出將以你希望的格式顯示
你也可以嘗試
將顯示
或
將顯示