PHP如何在foreach循环中删除数组值?

时间:2015-07-03 10:31:53

标签: php

我想删除包含值2000 Outside的元素(例如,Eg1,Eg2和Eg3),这可能会有所帮助:每个值循环可以有很多值。
删除“2000 Outside”后,仅显示最高记录数据。 Eg1 2000年周一,Eg3 2000周五。 我正在寻找最简单的功能来执行这项任务。

Eg1
Postcode Day
2000    Monday
2000   Outside
2000   Friday
2000   Sunday
2000   wednesday

Eg2
Postcode Day
2000    Outside
2000   Monday
2000   Friday
2000   Sunday
2000   wednesday

Eg3
Postcode Day
2000    Outside
2000   Outside
2000   Friday
2000   Sunday
2000   wednesday

foreach($Items as $item)
{

echo $item->PostCode. " ".$item->Day.'<br/>'."\n";

}

3 个答案:

答案 0 :(得分:2)

我认为你可以使用它:

foreach($Items as $key=>$item)
{
    if($item->Postcode == 2000 && $item->Day == "Outside") {
          array_splice($Items,$key,1);
    }
}

echo $Items[0]->Postcode . " " . $Items[0]->Day;

答案 1 :(得分:1)

稍微调整了dlegall的答案,因为我在使用本地服务器时遇到了一些麻烦。我也使用了阵列。

$Items[] = array("Postcode" => 2000, "Day" => "Outside");
$Items[] = array("Postcode" => 2000, "Day" => "Monday");
$Items[] = array("Postcode" => 2000, "Day" => "Friday");

foreach($Items as $key => $item)
    {
        if($item["Postcode"] == 2000 && $item["Day"] == "Outside") {
              array_splice($Items,$key,1);
        }
    }

echo $Items[0]["Postcode"] . " " . $Items[0]["Day"];

答案 2 :(得分:0)

我们不能使用以下代码吗?

foreach($array as $element){
 if(($element->postcode == '2000') && ($element->variable == 'Outside')){
  unset($element);
 }
}