3 回答

TA貢獻(xiàn)1818條經(jīng)驗 獲得超11個贊
只需創(chuàng)建一個由索引 6 開始的組索引的數(shù)組。這將為由組號索引的每個組創(chuàng)建一個子數(shù)組:
foreach($array as $v) {
$groups[$v[6]][] = $v;
}
然后要獲取一組中單獨的項目,檢查是否恰好有一個子數(shù)組并將其添加到另一個數(shù)組中。然后將其從組數(shù)組中刪除:
foreach($groups as $k => $v) {
if(count($v) == 1) {
$other[] = $v; // or $other[$v[0][6]][] = $v;
unset($groups[$k]);
}
}

TA貢獻(xiàn)1946條經(jīng)驗 獲得超4個贊
$mainArray = ... all rows variable here..
$groupedArray = [];
$countArray = [];
foreach ($mainArray as $k => $v) {
$groupedArray[$v[6]][] = $v;
$countArray[$v[6]]++;
}
$singleItems = [];
$multipleItems = [];
foreach ($groupedArray as $k => $v) {
if ($countArray[$k] > 1) $multipleItems[] = $v;
else $singleItems = $v;
}
... do something with single and multi - groups...
1:首先按子數(shù)組的第 6 個項目將所有項目分組...同時保持計數(shù) 2. 將單個和多個項目組分隔在 2 個數(shù)組中... 3. 對多個項目做任何你需要的事情團體。

TA貢獻(xiàn)1936條經(jīng)驗 獲得超7個贊
此函數(shù)將按所需索引對它們進(jìn)行分組,然后將沒有任何其他具有相同索引的那些組合起來,并返回一個數(shù)組數(shù)組,未分組,然后全部分組。
function sortByIndex( $data, $index ) {
$sortedData = array();
$ungroupedData = array();
// Make sure you can loop through
if ( ! is_array( $data ) ) {
return FALSE;
}
foreach ( $data as $key => $arrayToInspect ) {
if ( ! isset( $sortedData[$arrayToInspect[$index]] ) ) {
$sortedData[$arrayToInspect[$index]] = array();
}
$sortedData[$arrayToInspect[$index]][] = $arrayToInspect;
}
// Combine as desired
foreach ( $sortedData as $groupId => $data ) {
if ( count( $data ) < 2 ) {
$ungroupedData[] = $data;
unset( $sortedData[$groupId] );
}
}
return ( array_merge( [ $ungroupedData ], array_values( $sortedData ) ) );
}
- 3 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報