2012-08-07 3 views
2

J'ai un tableau dans lequel j'ai un champ appelé date et ce dont j'ai besoin est de séparer tous ces tableaux en semaines. Est-il possible de le faire? Voici mon code:Organiser un tableau par semaines

function getWeeks($query){ 
    $postdate = $query['response']['posts']['date']; 


    return $posts; 
} 

Voici une partie de mon tableau:

Array ([date] => 07/30/12 [message] => test [post_id] => 1 [impressions] => Array ([0] => 9638) [consumptions] => Array ([0] => 38) [storytellers] => Array ([0] => 6) [engaged_users] => Array ([0] => 31) [story_adds] => Array ([0] => 6) [impressions_unique] => Array ([0] => 4700) [comment] => Array ([0] => 1) [like] => Array ([0] => 5) [share] => Array ([0] => 0) [virality] => Array ([0] => 0) [lifetime] => Array ([0] => 0) [affinity] => Array ([0] => 0)) 

Array ([date] => 07/30/12 [message] => test2 [post_id] => 2 [impressions] => Array ([0] => 10552) [consumptions] => Array ([0] => 47) [storytellers] => Array ([0] => 5) [engaged_users] => Array ([0] => 44) [story_adds] => Array ([0] => 5) [impressions_unique] => Array ([0] => 4982) [comment] => Array ([0] => 0) [like] => Array ([0] => 4) [share] => Array ([0] => 1) [virality] => Array ([0] => 0) [lifetime] => Array ([0] => 0) [affinity] => Array ([0] => 0)) 
+2

Date '('W', strtotime ('07/30/12')) 'peut vous aider. http://php.net/date –

Répondre

4

Cette boucle permet de faire défiler chacun de vos envois de la poste et les regrouper si elles sont dans la même semaine.

View an Example

<?php 

$posts = array(
    array('date' => '7/30/10', 'title' => 'july post'), 
    array('date' => '7/19/10', 'title' => 'another post in july'), 
    array('date' => '7/22/10', 'title' => 'sup, this will be with another post') 
); 

$grouped_posts = array(); 

foreach($posts as $post) { 
    // @see http://us2.php.net/manual/en/function.date.php 
    $week = date('W', strtotime($post['date'])); 

    // create new empty array if it hasn't been created yet 
    if(!isset($grouped_posts[$week])) { 
    $grouped_posts[$week] = array(); 
    } 

    // append the post to the array 
    $grouped_posts[$week][] = $post; 
} 

print_r($grouped_posts); 
+1

$ week = date ('Y W', strtotime ($ ligne ['0'])); si besoin trier par semaines et années, devenez maintenant 2015 01 01 et 2016 01 01 dans le même tableau :) – Arnoldas

Questions connexes