2009-09-17 12 views
1

Comment puis-je prendre un tableau multidimensionnel comme ci-dessous, et le diviser en plusieurs tableaux séparés? Défi supplémentaire: Bien que je sache qu'il y a deux paires dans l'exemple ci-dessous (pages vues, visites), comment pouvez-vous le faire en supposant que vous ne connaissiez pas le nombre de paires dans le tableau? Par exemple, je pourrais vouloir ajouter "temps sur la page" ou "pages visitées", et pourrait donc avoir n'importe quel nombre de paires. En fin de compte, mon objectif serait d'avoir un tableau comme: "26, 9, 18" et un autre tableau "20, 4, 9".Comment diviser un tableau multidimensionnel en PHP?

J'ai un tableau comme celui-ci:

 
Array 
(
    [20090817] => Array 
     (
      [ga:pageviews] => 26 
      [ga:visits] => 20 
     ) 

    [20090818] => Array 
     (
      [ga:pageviews] => 9 
      [ga:visits] => 4 
     ) 

    [20090819] => Array 
     (
      [ga:pageviews] => 18 
      [ga:visits] => 9 
     ) 
) 

J'aurais pensé que le code ci-dessous fonctionnerait, mais il ne reçoit pas la valeur spécifique que je veux, et pour une raison étrange, il trims chaque valeur à un caractère:

 
$pageViews = array(); 
$visits[] = array(); 
foreach ($google_lastMonth as $value) { 
    foreach ($value as $nested_key => $nested_value) { 
     $pageViews[] = $nested_value["ga:pageviews"]; 
     $visits[] = $nested_value["ga:visits"]; 
    } 
} 
+0

ce code devrait fonctionner .... – RageZ

+0

Eh oui, rien évidemment mal avec la façon dont vous êtes le faire ... – timdev

Répondre

9

Votre tableau est pas aussi profond que vous pensez:

$pageViews = array(); 
$visits = array(); 
foreach ($google_lastMonth as $value) { 
    $pageViews[] = $value["ga:pageviews"]; 
    $visits[] = $value["ga:visits"]; 
} 
+1

Merci, mon cher seigneur, je déteste ces "pièges", merci dieu pour stackoverflow, et vous, gentils qui fait fonctionner les choses; D – Matrym

0

Je pense

vous devez effacer le braket sur la visite

Ok mon mauvais devrait être que

$pageViews = array(); 
    $visits = array(); 
    foreach ($result as $value) { 
    $pageViews[] = $value['ga:pageviews']; 
     $visits[] = $value['ga:visits']; 
} 
+0

Merci d'avoir attrapé ça. J'ai toujours le problème cependant. D'autres idées? – Matrym

+0

essayer de remplacer le «par 'sur $ PageViews [] = $ nested_value [' ga: Pages vues ']; visites $ [] = $ nested_value [' ga: visites]; – RageZ

+0

oky trouvé ... – RageZ