- var_dump: documentation ( source)
- array_walk: documentation ( source)
<?php
class ReportController
{
protected $source;
protected $data;
public function __construct(array $source, $dataObject = null, \Closure $transformer = null)
{
$this->source = $source;
$this->data = ($dataObject) ? [] : $dataObject;
$this->transform($transformer);
}
public function transform(\Closure $transformer = null)
{
array_walk($this->source, $transformer);
}
public function getData() {
return $this->data;
}
}
$source = [
['type'=>'open'],
['type'=>'closed'],
['type'=>'pending'],
['type'=>'accepted']
];
$transformer = function($ticket, $key) {
(isset($this->data[$ticket['type']]))? $this->data[$ticket['type']]++: $this->data[$ticket['type']]=1;
};
$report = new ReportController($source);
var_dump($report->getData());