Igualmente aparecem chaves de matriz baseadas em datas

Eu tenho uma matriz que se parece com isto:

[numbers] => Array ( [2017-05-14] => 319594 [2017-05-15] => 319774 [2017-05-16] => 319962 [2017-05-17] => 320135 [2017-05-18] => 320304 [2017-05-19] => 320459 [2017-05-20] => 320590 [2017-05-21] => 320752 [2017-05-22] => 320882 [2017-05-23] => 320991 [2017-05-24] => 321093 [2017-05-25] => 321144 [2017-05-26] => 323124 [2017-05-27] => 324534 [2017-05-28] => 325123 [2017-05-29] => 326453 ) 

Os dados são coletados todos os dias e serão exibidos em um gráfico de linhas usando o ChartJS. Tenho medo de que, após um mês ou dois, há muitas datas.

Diga que eu quero manter apenas 6 chaves entre o início e a data de término. Como posso separar as chaves igualmente entre a primeira e a última data? Isso teria que trabalhar com matrizes de qualquer tamanho.

Eu tenho que salvar a primeira e última chave.

EDITAR:

Foi o que eu criei. Esse é o caminho certo?

 $items = Array( "2017-05-14" => 319594, "2017-05-15" => 319774, "2017-05-16" => 319962, "2017-05-17" => 320135, "2017-05-18" => 320304, "2017-05-19" => 320459, "2017-05-20" => 320590, "2017-05-21" => 320752, "2017-05-22" => 320882, "2017-05-23" => 320991, "2017-05-24" => 321093, "2017-05-25" => 321144, "2017-05-26" => 323124, "2017-05-27" => 324534, "2017-05-28" => 325123 ); $desiredSize = 8 ; $desiredSize--; $arrayCount = count($items) - 1; $factor = $arrayCount / $desiredSize; echo 0 ."\n"; for ( $i = 1; $i <= $desiredSize; $i++ ) { echo floor( $i * $factor ) ."\n"; } 

Você pode usar uma combinação de array_slice , array_keys e array_search functions. Digamos que você deseja obter uma fatia de matriz da chave 2017-05-18 a 2017-05-25 . O código seria assim:

 $arrayKeys = array_keys($array); $firstElementIndex = array_search('2017-05-18', $arrayKeys); $lastElementIndex = array_search('2017-05-25', $arrayKeys); $sliceLenght = $lastElementIndex - $firstElementIndex + 1; $result = array_slice($array, $firstElementIndex, $sliceLenght, true); 

Onde $array é uma matriz de datas