根据当前值获取数组的下一个值

时间:2019-02-12 16:23:19

标签: php

我有此代码:

$array1 = array("2018-02-01" => "10", "2018-03-01" => "20");
$array2 = array("2018-01-01" => "random", "2018-02-01" => "random", "2018-03-01" => "random", "2018-04-01" => "random");

$end_array = array();

$v = 0;
foreach($array2 as $key => $value) {

    if($array1[$key]) {
        $v = intval($array1[$key]);
        $end_array[] = $v;
    } else {
        $end_array[] = $v;
    }
}

var_dump($end_array);

哪个给我这个输出:

array(4) { [0]=> int(0) [1]=> int(10) [2]=> int(20) [3]=> int(20) }

但是我想得到这个输出:

array(4) { [0]=> int(10) [1]=> int(20) [2]=> int(20) [3]=> int(20) }

换句话说,我想将当前数组的值分配给前一个。

我尝试寻找方法来检查下一个数组的键是否是我的array1中的键,但是它仍然没有给我正确的输出(或者我认为我没有正确检查,我似乎找不到正确的算法)。我希望很清楚我要做什么。

2 个答案:

答案 0 :(得分:0)

编辑:首先我听不懂。 基本上,您可以只处理id并更改最后一个元素(如果它存在于第一个数组中)

$end_array = array();
$id = 0;
$v = 0;
foreach($array2 as $key => $value) {
    if(isset($array1[$key])) {
        $v = intval($array1[$key]);
        $end_array[$id] = $v;
        if(isset($end_array[$id-1]))
        {
            $end_array[$id-1] = $v;
        }
    } else {
        $end_array[$id] = $v;
    }
$id++;
}

答案 1 :(得分:0)

我不太确定您要做什么,但是可以使用array_key_exists()函数检查该键是否存在。 More info