Reputation: 142
i am trying to access $managers
variable in change
function.
public function ManagerPerDay() {
$query = $this->mysqli()->query('SELECT
manager,
count(manager) AS count
FROM
DATA
GROUP BY
manager
ORDER BY
count DESC');
$data = $query->fetch_all();
$managers = $this->GetManagers();
function Change($n)
{
$name = $managers[array_search($n[0], array_column($managers, 'id'))]['name'];
$n[0] = $name;
return $n;
}
$data = array_map('Change', $data);
array_unshift($data, ['Manager', 'Per Day']);
return $data;
}
i have tried global $managers; in change function but it also does not work.
Upvotes: 1
Views: 67
Reputation: 90776
You could use the use
keyword to pass that variable to the function. Something like this for example:
$data = array_map(function($n) use ($manager) {
$name = $managers[array_search($n[0], array_column($managers, 'id'))]['name'];
$n[0] = $name;
return $n;
}, $data);
Upvotes: 0
Reputation: 4220
Use array_walk which allows you to add your parameters
function Change(&$n, $key, $managers)
{
$name = $managers[array_search($n[0], array_column($managers, 'id'))]['name'];
$n[0] = $name;
}
array_walk($data, 'Change', $managers);
Upvotes: 2