使用值数组检查键的数组并将其设置为值

时间:2016-11-11 13:42:41

标签: php arrays

我有一个问题要问你。 我的PHP代码由以下数组组成,我的目的是将它们合并为一个,正如您可以在主题的底部看到的那样。 这些数组分为两个不同的变量:$ array1和$ array2。

Array ($array1)
(
    [0] => 2016-11-11
    [1] => 2016-11-10
    [2] => 2016-11-09
    [3] => 2016-11-08
    [4] => 2016-11-07
    [5] => 2016-11-06
    [6] => 2016-11-05
)
1
Array ($array2)
(
    [2016-11-11] => 0
    [2016-11-10] => 0
    [2016-11-08] => 0
    [2016-11-07] => 0
    [2016-11-06] => 0
)
1

这就是我期望这个程序会做的事情:

Array
(
    [2016-11-11] => 0,
    [2016-11-10] => 0,
    [2016-11-09] => NULL,
    [2016-11-08] => 0,
    [2016-11-07] => 0,
    [2016-11-06] => 0,
    [2016-11-05] => NULL
)
1

如何设置我的代码以便它返回前一个数组?我怎么解决这个问题?任何人都可以帮助我吗?

我试过了:

$array1 = array( 
    "2016-11-11", 
    "2016-11-10", 
    "2016-11-09", 
    "2016-11-08",
    "2016-11-07",
    "2016-11-06",
    "2016-11-05"
);
$array2 = array();
while($row1 = $result1->fetch_assoc())
{
    $array2[$row1["datesend"]] = $row1["error"];
}

1 个答案:

答案 0 :(得分:1)

此代码适用于您:

$array1 = array('2016-11-11','2016-11-10','2016-11-09','2016-11-08','2016-11-07','2016-11-06','2016-11-05');
$array2 = array('2016-11-11' => 0,'2016-11-10' => 0,'2016-11-08' => 0,'2016-11-07' => 0,'2016-11-06' => 0);

$result = array();
foreach($array1 as $a){
    if(isset($array2[$a]))
        $result[$a] = $array2[$a];
    else
        $result[$a] = NULL;
}
echo '<pre>';
var_dump($result);
echo '</pre>'

Outpur是:

array(7) {
  ["2016-11-11"]=>
  int(0)
  ["2016-11-10"]=>
  int(0)
  ["2016-11-09"]=>
  NULL
  ["2016-11-08"]=>
  int(0)
  ["2016-11-07"]=>
  int(0)
  ["2016-11-06"]=>
  int(0)
  ["2016-11-05"]=>
  NULL
}

我希望它有所帮助