2012-05-08 7 views
-2

Salut je veux savoir si cela peut être fait sans une boucle foreach. J'essaie d'extraire des données mais ça continue à tourner. Je veux juste l'exécuter une fois et stocker les valeurs d'un tableau. S'il vous plaît pouvez-vous m'aider à faire cela. Je suis nouveau à PHP alors je m'excuse si cela semble basique. Merci d'avance.Foreach en alternative php?

foreach ($result->titles as $title) 
{ 
    "Title ID" => $title->id, 
    "Title" => $title->title_name, 
    "Created On" => $month_created_on, 
    "Solved On" => $solved_on , 
    "Status" => $title->status, 
} 
+0

Quelles sont ces clés? À quel tableau appartiennent-ils? – Shoe

+0

et d'où proviennent les données? qu'est-ce que vous voulez faire (lire des données ou écrire?). – Sliq

+0

Les clés sont utilisées pour identifier les champs dans lesquels j'écris. Je lis et écris des données. les données lisent bien. Je veux écrire ces données dans un autre fichier mais le problème est qu'il sort chaque fois. Je veux juste les dernières touches affichées lorsque la page est rafraichie. Merci encore –

Répondre

0

Pour exécuter une fois, vous n'avez pas besoin d'une boucle. Accédez directement au premier élément du tableau $result->titles. Cela suppose que le tableau est numériquement indexé et que le premier élément est à l'index 0. Si ce n'est pas le cas, modifiez le [0] pour référencer le premier élément.

$title_data = array(
    "Title ID" => $result->titles[0]->id, 
    "Title" => $result->titles[0]->title_name, 
    "Created On" => $month_created_on, 
    "Solved On" => $solved_on , 
    "Status" => $result->titles[0]->status, 
); 
0

Lorsque vous faites ceci:

"Title ID" => $title->id 

Il est la notation de tableau associatif où vous utilisez titre ID comme la clé et $title->id la valeur. Afin de rendre le code que vous avez du travail, il devrait être comme ceci:

foreach ($result->titles as $title) 
{ 
    $newValues[] = array("Title ID" => $title->id, 
         "Title" => $title->title_name, 
         "Created On" => $title->month_created_on, 
         "Solved On" => $title->solved_on , 
         "Status" => $title->status 
        ); 
} 

Mais tout cela fait vraiment est réattribuer le tableau $result->titles comme un tableau associatif avec vos propres touches personnalisées. Je ne suis pas sûr que ce soit même ce que tu veux.

Pour obtenir le premier élément de la result->titles faire quelque chose comme ceci:

$title_id = $result->titles[0]->id; 
$title_name = $result->titles[0]->title_name; 
// etc... 
0

Oui, vous pouvez vous pouvez utiliser une combinaison de while et each pour obtenir la même chose foreach peut faire

Exemple

$all = array(); 
while (list (, $data) = each ($result->titles)) { 
    $array = array(); 
    while (list ($key, $value) = each ($data)) { 
     $array [$key] = $value; 
    } 
    $all [] = $array; 
} 
echo "<pre>"; 
print_r ($all);