-2

こんにちは、これが foreach ループなしで実行できるかどうかを知りたいです。データを抽出しようとしていますが、ループし続けます。一度実行して、値を配列に保存したいだけです。これを行うのを手伝ってください。私は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,
}
4

3 に答える 3

0

1 回実行する場合、ループは必要ありません。$result->titles配列の最初の要素に直接アクセスするだけです。これは、配列が数値的にインデックス付けされ、最初の要素が index にあることを前提としています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,
);
于 2012-05-08T16:47:16.883 に答える
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、独自のカスタム キーを使用して連想配列として配列を再割り当てすることだけです。それがあなたが望むものであるかどうかはわかりません。

の最初の要素を取得するには、次のresult->titlesようにします。

$title_id = $result->titles[0]->id;
$title_name = $result->titles[0]->title_name;
// etc...
于 2012-05-08T16:50:25.670 に答える
0

はい、できます と の組み合わせを使用してwhileeach同じことを実現foreachできます。

$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 );
于 2012-05-08T17:43:21.827 に答える