我有此代码:
$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
中的键,但是它仍然没有给我正确的输出(或者我认为我没有正确检查,我似乎找不到正确的算法)。我希望很清楚我要做什么。
答案 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