2012-05-08 10 views
-2

こんにちは、これはforeachループなしで行うことができるかどうかを知りたいです。私はデータを抽出しようとしていますが、ループを維持しています。私はそれを一度実行し、配列に値を格納したいだけです。これを行う際に私を助けてください。私はそれが基本的に見える場合、私は謝罪するためにPHPに新しいです。前もって感謝します。PHP代替のForeach?

+0

これらのキーは何ですか?彼らはどのアレイに属していますか? – Shoe

+0

とデータはどこから来ますか?あなたは何をしたいですか(データの読み書きか?)。 – Sliq

+0

キーは、私が書き込んでいるフィールドを識別するために使用されます。私はデータを読み書きしています。データは正常に読み込み中です。私はこのデータを別のファイルに書きたいが、問題は毎回出力される。私はちょうどページが更新されたときに表示される最新のキーが欲しい。再度、感謝します –

答えて

0

一度実行するにはループは必要ありません。 $result->titles配列の最初の要素に直接アクセスするだけです。これは、配列が数値でインデックス付けされ、最初の要素がインデックス0にあることを前提としています。そうでない場合は、最初の要素を参照するように[0]を変更します。

$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

あなたが行う場合は、この:

"Title ID" => $title->id 

それはあなたがタイトルキーとしてIDと値として$title->idを使用している連想配列表記法です。あなたが仕事を持っているコードを作成するためには、このようなことする必要があります:

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 
        ); 
} 

しかし、実際にしても、そのすべてが独自のキーを持つ連想配列として$result->titles配列を再割り当てです。それがあなたが望むものであるかどうかは分かりません。

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

はい、あなたはforeach

を行うことができ、同じことを達成するために whileeachを組み合わせて使用​​することができますすることができます: result->titlesの最初の要素は、このような何かを取得するには

$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);