I have array with values from database
$values = $sql->fetchAll();
Which looks like this:
var_dump($values);
array (size=4)
0 =>
array (size=4)
'id' => string '1' (length=1)
0 => string '1' (length=1)
'level' => string '0' (length=1)
1 => string '0' (length=1)
1 =>
array (size=4)
'id' => string '2' (length=1)
0 => string '2' (length=1)
'level' => string '3' (length=1)
1 => string '3' (length=1)
2 =>
array (size=4)
'id' => string '3' (length=1)
0 => string '3' (length=1)
'level' => string '0' (length=1)
1 => string '0' (length=1)
What I am trying to do is to change level to for example 5, where player id = 3. I need to change both level related values. Number or array keys and their position may vary depending on SQL query. I need function which would take following arguments: $playerID, $keyName, $value and then it would change appropriate values.
For example:
function($playerID, $keyName, $value);
function(3, "level", 5);
Array after changes would look like this:
array (size=4)
0 =>
array (size=4)
'id' => string '1' (length=1)
0 => string '1' (length=1)
'level' => string '0' (length=1)
1 => string '0' (length=1)
1 =>
array (size=4)
'id' => string '2' (length=1)
0 => string '2' (length=1)
'level' => string '3' (length=1)
1 => string '3' (length=1)
2 =>
array (size=4)
'id' => string '3' (length=1)
0 => string '3' (length=1)
'level' => string '5' (length=1)
1 => string '5' (length=1)
Try something like this:
function changeVal($values, $playerID, $keyName, $value)
{
foreach($values as $key => $val)
{
if ($val['id'] == $playerID)
{
$values[$key][$keyName] = $value;
$index = array_search($keyName, array_keys($values))+1;
$values[$key][$index] = $value;
}
}
}
changeVal($values , 3, "level", 5);