-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

当你这样做时:

"Title ID" => $title->id

它是关联数组表示法,您使用Title 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

是的,您可以使用while和的组合each来实现相同的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 回答
0

要运行一次,您不需要循环。只需直接访问$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 回答