如果end($ array)中的值包含到倒数第二的内容

时间:2013-11-19 14:07:26

标签: php arrays loops

我有一个包含多个elememts的数组。我使用end($array)来获取数组中的最后一个元素。但是如果最后一个元素包含一个值,它必须采用倒数第二个元素。但如果第二个最后一个元素也包含该值,则它必须转到下一个元素。我已经写了这段代码:

$g = end($array);

if($g != NULL && $g['MoreThanZero'] == true && $accountdata['bidding'] == 0) {
    $v = end(array_pop($array));
} else {
    $v = end($array);
}

在此代码中,它将一直持续到最后一个元素。如何制作一个“循环”,检查最后..倒数第二....第三个最后....第四个最后......

3 个答案:

答案 0 :(得分:0)

您可以使用array_reverse()函数更改元素的顺序,然后使用foreach()循环遍历数组。

答案 1 :(得分:0)

使用一点foreach,与array_reverse()混合使其有效:

$accountdata['bidding'] = 0;
$array = array(
    array('Value' => 10,   'MoreThanZero' => true),
    array('Value' => -10,  'MoreThanZero' => false),
    array('Value' => 20,   'MoreThanZero' => true),
    array('Value' => -30,  'MoreThanZero' => false),
    array('Value' => 30,   'MoreThanZero' => true),
    array('Value' => 40,   'MoreThanZero' => true),
    array('Value' => 50,   'MoreThanZero' => true)
);

$v = null;
foreach(array_reverse($array) as $g) {
    if($g != NULL && $g['MoreThanZero'] == true && $accountdata['bidding'] == 0) 
        continue;
    $v = $g;
    break;
}

var_dump($v);

答案 2 :(得分:0)

$test = array('one','two','three','three');

function getLastElement($array = array(),$exclude=null){
    $list = array_reverse($array);
    foreach($list as $item){
        if($item!=$exclude) return $item;
    }
    return null;
}

var_dump(getLastElement($test,'three'));