I’m working on a system that fetches info from an external source and then processes the data a bit. I’ve gotten it to do my wished functionality for the client when processing the data in JavaScript. What’s next is that I want to store the info in a database. But here I want to process it solely in PHP (or in some other server side way of doing it). What’s currently confusing me is some array replacement stuff.
What I have now stored in an array is players ID, Times, Name and Bikes. The data I'm fetching is dividing the bikes into 2 classes (2 and 4stroke) so I have to fetch each set of data individually. The array "rec450" contains the relevant information from the 4stroke class. What I want to do here is compare the 2stroke class for a given user and see if the time is faster on the 2stroke. If it is, I want to replace the data in the "rec450" array with the new info from the 2stroke array. So I would like to have this functionality:
if(class1[‘time’] < class2[‘time’]){
replace class1 info with the class2 info;
}
Here is the PHP code I’m currently using:
//Pushing the data I want from the fetched array to a new array. This array is no longer associative.
foreach ($rr450f as $key => $value) {
$tmpArr = array(
"name" => $value['name'],
"time" => $value['time'],
"bike" => $value['bike'],
"uid" => $value['uid']
);
array_push($rec450, $tmpArr);
}
This is how I try to change the values for the rec450 array:
foreach($rr250 as $key => $value){
foreach ($rec450 as $k => $v) {
if($value['uid'] == $v['uid']){
$k['time'] = $value['time'];
$k['bike'] = $value['bike'];
$k['name'] = $value['name'];
$k['uid'] = $value['uid'];
}
}
}
Here is the print_r of the rec450 array (structure) I’m using:
Array(
[0] => Array
(
[name] => Player One
[time] => 17068
[bike] => rmz450(2013)
[uid] => 90970
)
[1] => Array
(
[name] => Player Two
[time] => 8959
[bike] => 450sxf(2016)
[uid] => 76800
)
[2] => Array
(
[name] => Player Three
[time] => 8300
[bike] => yz450f(2016)
[uid] => 90380
)
[3] => Array
(
[name] => Player Four
[time] => 8791
[bike] => 450sxf(2016)
[uid] => 89240
)
[4] => Array
(
[name] => Player Five
[time] => 19640
[bike] => 450sxf(2016)
[uid] => 98809
)
)
This is the array that contains the 2stroke data in it's base form, before any columns are filtered out.
Array
(
[90970] => Array
(
[time] => 11929
[bike] => rm250(2008)
[number] => 123
[name] => Player One
[uid] => 90970
[url] => /path/to/player/info
)
[9248] => Array
(
[time] => 9922
[bike] => cr250(2007)
[number] => 124
[name] => Player Twelve
[uid] => 60030
[url] => /path/to/player/info
)
)
At this stage what I want is some way to replace the 4stroke times with the 2stroke times if a Player was faster on the 2stroke. If it's unnecessary to do the filtering out of unnecessary data and losing the association of the array when I am doing the rr450f to rec450, I could skip that.
Would really appreciate any info of how I can replace the values in the 1st array with the ones from the 2nd one!