strstr()

strstr(여기에서, 얘로시작하는부분부터끝까지, 왼쪽/오른쪽 )

여기에서 얘로 시작하는 부분부터 끝까지 왼쪽이나 오른쪽으로 찾아줘.

2011-02-04와 같이 날짜 부분을 기반으로 여러 배열을 만들었다.
타임스탬프키를 가지고 있고, 타임스탬프키를 분해하여 날짜와 시간을 분리해야한다.
2011-02-042011-02-05에 해당하는 날짜의 모든 값을 포함하는 하나의 배열을 갖도록 분류하자.

Array
(
    [0] => Array
        (
            [avgvalue] => 0
            [maxvalue] => 0
            [minvalue] => 0
            [nrsamples] => 0
            [stddeviation] => 0
            [timestamp] => 2011-02-04T11:00:00.000Z
        )

    [1] => Array
        (
            [avgvalue] => 268.3
            [maxvalue] => 268.3
            [minvalue] => 268.3
            [nrsamples] => 0
            [stddeviation] => 0
            [timestamp] => 2011-02-04T12:00:00.000Z
        )

    [2] => Array
        (
            [avgvalue] => 268.391666667
            [maxvalue] => 268.4
            [minvalue] => 268.3
            [nrsamples] => 0.0288675134595
            [stddeviation] => 0.0288675134595
            [timestamp] => 2011-02-04T13:00:00.000Z
        )

    [3] => Array
        (
            [avgvalue] => 268.433333333
            [maxvalue] => 268.5
            [minvalue] => 268.4
            [nrsamples] => 0.0492365963918
            [stddeviation] => 0.0492365963918
            [timestamp] => 2011-02-04T14:00:00.000Z
        )

    [4] => Array
        (
            [avgvalue] => 268.5
            [maxvalue] => 268.5
            [minvalue] => 268.5
            [nrsamples] => 0
            [stddeviation] => 0
            [timestamp] => 2011-02-04T15:00:00.000Z
        )
 )

날짜 형식이 모든 항목에 대해 동일하다고 가정하면 간단히 배열을 반복해 처리할 수 있다.

$result = []; 

foreach ($array as $item){
    $date = strstr($item['timestamp'], 'T', true); 
    if(!array_key_exists($date, $result)){
        $result[$date] = [];
    }
    $result[$date][] = $item;
}

구문분석

strstr($item['timestamp'], 'T', true):
$item[timestamp]에서 T로 시작하는 부분부터 끝까지의 왼쪽으로 검색해서 문자열를 찾아 그대로 반환해줘!

⚠ 대소문자를 구분합니다.
⚠ 문자열 부분을 찾지 못한 경우 FALSE를 반환합니다.
⚠ true => 왼쪽으로 검색, false => 오른쪽으로 검색

if(!array_key_exists($date, $result)):
$result 배열에 $date라는 키가 존재하지 않으면 $result[$date] 배열을 만들어 값이 없어도 오류를 안나게한다.
있으면 $result[$date]라는 배열에 데이터를 담아 만든다.

array_key_exists()는 일차원에서만 키를 검색한다.