Associate tags to tasks in BoardFormatter

This commit is contained in:
Frederic Guillot
2016-06-24 10:05:45 -04:00
parent 9e278a9370
commit 700b4e8f02
9 changed files with 386 additions and 17 deletions

View File

@@ -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