I have a mySQL query to fetch data from a whole year: $allYearData = $stmt->fetchAll();
Now i´d like to split this array into 12 parts, separated by month.
UPDATE
So i count rows in $allYearData
:
//Count all keys
$allYearDataCount = Count($allYearData);
Now i use PHP preg_grep()
to search and put result in new array $janData
.
for($i = 0; $i <= $allYearDataCount; $i++){
$janData[] = preg_grep("/^2015-01-.*$/", $allYearData[$i]);
}
Result:
preg_grep() expects parameter 2 to be array, null given
If i check $allYearData
for data i can see it´s full.
$allYearData = $stmt->fetchAll();
print_r($allYearData);
Array ( [0] => Array ( [id] => 7811 [objekt_element] => 23050-121-1_3105 [objekt_nr] => 23050-121-1 [element_nr] => 3105 [vart] => B.Avf [vem] => Blå [anteckn] => [datum] => 2015-09-29 18:00:19 ) [1] => Array ( [id] => 7812 [objekt_element] => 23050-121-1_3107 [objekt_nr] => 23050-121-1 [element_nr] => 3107 [vart] => B.Avf [vem] => Blå [anteckn] => [datum] => 2015-09-29 18:00:22 ) [2....
What am i doing wrong?
for($i = 0; $i <= $allYearData; $i++){
$janData[] = preg_grep("/^2015-01-.*$/", $allYearData[$i]);
}
First, you have $i <= $allYearData, so allYearData is number, or array? With loop there should be an integer there. Use count($allYearData) instead. and not <= but <.
Second, use foreach loop, so you will have no problem with counting items. Or think twice before using for.