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

时间:2014-04-10 11:41:22

标签: php arrays 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
)

5 个答案:

答案 0 :(得分:3)

我认为array_merge可以在没有循环的情况下为你工作。

答案 1 :(得分:2)

检查密钥是否已存在

$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);
   }
}

答案 2 :(得分:1)

或者只是替换

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

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

答案 3 :(得分:0)

使用in_array ..

而不是

if($value!=$file_months) {

}

使用此..

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

}

答案 4 :(得分:0)

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

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

而不是

if($value!=$file_months)