使用array_push将元素添加到动态数组中


Add elements to a dynamic array with array_push

我有一个数组file_months,它在新的月份添加到文件夹时会发生变化:

Array
(
    [0] => 01
    [1] => 02
    [2] => 03
)

我想要的是在一个选择选项中显示所有月份,所以我尝试了这个:

$nbr_mois = array('0'=>'01','1'=>'02','2'=>'03','3'=>'04','4'=>'05','5'=>'06','6'=>'07','7'=>'08','8'=>'09','9'=>'10','10'=>'11','11'=>'12');
foreach ($nbr_mois as $key => $value) {
    if($value!=$file_months)
array_push($file_months,$value);
}

但它并没有增加缺失的月份,而是增加了所有的月份!像这样:

Array
(
    [0] => 01
    [1] => 02
    [2] => 03
    [3] => 01
    [4] => 02
    [5] => 03
    [6] => 04
    [7] => 05
    [8] => 06
    [9] => 07
    [10] => 08
    [11] => 09
    [12] => 10
    [13] => 11
    [14] => 12
)

我认为array_merge将在没有循环的情况下为您工作。

检查密钥是否已经存在

$nbr_mois = array('0'=>'01','1'=>'02','2'=>'03','3'=>'04','4'=>'05','5'=>'06','6'=>'07','7'=>'08','8'=>'09','9'=>'10','10'=>'11','11'=>'12');
foreach ($nbr_mois as $key => $value) {
if(!array_key_exists($key, $arrayname) {
    if($value!=$file_months)
        array_push($file_months,$value);
   }
}

或者只是替换

if($value!=$file_months)
    array_push($file_months,$value);

带有

if($value!=$file_months[$key])
    $file_months[$key] = $value;

使用in_array。。

代替

if($value!=$file_months) {
}

使用此。。

if(!in_array($value,$file_months)) {
}

使用in_array()方法,如下所示:

if(!in_array($value, $file_months))

而不是

if($value!=$file_months)