I am trying to get an a value of id assigned to an array element. The problem I am having is that it will assign one id every 70 loops through the foreach. I am not quite sure what I am doing wrong on this one.
$search = 'echem';
$data = array();
$tags = null;
$i = 0;
//var_dump($this->videos);
foreach ($this->videos as $key => $value) {
foreach ($value as $key => $value) {
if ($key === 'id') {
$data[$i]['id'] = (int)$value;
}
if ($key == 'tags') {
$tags = explode(',', $value);
}
//echo $key . ' - ';
if (is_array($tags)) {
foreach ($tags as $key => $value) {
if (strtoupper($value) == strtoupper($search)) {
//echo 'Search Found <br/>';
$data[$i]['found'] = 1;
}
//echo $value.', ';
}
//echo '<br/>';
}
if (!isset($data[$i]['found'])) {
$data[$i]['found'] = 0;
}
$data[$i]['subId'] = $i;
$i++;
}
}
as you can see im checking to see if the $key is id on line 8 with the following code:
if ($key === 'id') {
$data[$i]['id'] = (int)$value;
}
I then run through the rest of the loop which appears to run through just fine and assign everything as needed. The key id is the first key in every loop through so why its not assigning it has me stumped. Any help is much appreciated.
output of var_dump():
array (size=58086)
0 =>
array (size=3)
'id' => int 1
'found' => int 0
'subId' => int 0
1 =>
array (size=2)
'found' => int 0
'subId' => int 1
2 =>
array (size=2)
'found' => int 0
'subId' => int 2
3 =>
array (size=2)
'found' => int 0
'subId' => int 3
4 =>
array (size=2)
'found' => int 0
'subId' => int 4
5 =>
array (size=2)
'found' => int 1
'subId' => int 5
6 =>
array (size=2)
'found' => int 0
'subId' => int 6
7 =>
array (size=2)
'found' => int 0
'subId' => int 7
var_dump($data)produce after theforeach?$valuein the nestedforeachloops.$key => $value- that's a little confusing to follow. You should give them different names, to make maintaining your code easier.foreach ($value as $key => $value) {is a recipe for disaster.