在PHP替代的Foreach?

时间:2012-05-08 16:41:34

标签: php foreach

您好我想知道是否可以在没有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,
}

3 个答案:

答案 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,
);

答案 1 :(得分: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...

答案 2 :(得分: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 );