Associate tags to tasks in BoardFormatter
This commit is contained in:
@@ -2,11 +2,61 @@
|
||||
|
||||
use Kanboard\Core\Translator;
|
||||
|
||||
/**
|
||||
* Associate another dict to a dict based on a common key
|
||||
*
|
||||
* @param array $input
|
||||
* @param array $relations
|
||||
* @param string $relation
|
||||
* @param string $column
|
||||
*/
|
||||
function array_merge_relation(array &$input, array &$relations, $relation, $column)
|
||||
{
|
||||
foreach ($input as &$row) {
|
||||
if (isset($row[$column]) && isset($relations[$row[$column]])) {
|
||||
$row[$relation] = $relations[$row[$column]];
|
||||
} else {
|
||||
$row[$relation] = array();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create indexed array from a list of dict
|
||||
*
|
||||
* $input = [
|
||||
* ['k1' => 1, 'k2' => 2], ['k1' => 3, 'k2' => 4], ['k1' => 2, 'k2' => 5]
|
||||
* ]
|
||||
*
|
||||
* array_column_index($input, 'k1') will returns:
|
||||
*
|
||||
* [
|
||||
* 1 => [['k1' => 1, 'k2' => 2], ['k1' => 2, 'k2' => 5]],
|
||||
* 3 => [['k1' => 3, 'k2' => 4]],
|
||||
* ]
|
||||
*
|
||||
* @param array $input
|
||||
* @param string $column
|
||||
* @return array
|
||||
*/
|
||||
function array_column_index(array &$input, $column)
|
||||
{
|
||||
$result = array();
|
||||
|
||||
foreach ($input as &$row) {
|
||||
if (isset($row[$column])) {
|
||||
$result[$row[$column]][] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sum all values from a single column in the input array
|
||||
*
|
||||
* $input = [
|
||||
* ['column' => 2'], ['column' => 3']
|
||||
* ['column' => 2], ['column' => 3]
|
||||
* ]
|
||||
*
|
||||
* array_column_sum($input, 'column') returns 5
|
||||
|
||||
Reference in New Issue
Block a user