Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在不更改其他数组数字键的情况下向数组开头添加元素_Php_Arrays - Fatal编程技术网

PHP在不更改其他数组数字键的情况下向数组开头添加元素

PHP在不更改其他数组数字键的情况下向数组开头添加元素,php,arrays,Php,Arrays,由于PHP>5.4版,不再可以使用“+”组合2个数字键数组。在不更改键的情况下组合2个数字键数组的任何替代方法?比如说 myarray1 = [0 => '-']; myarray2 = [8 => 'CUACA BURUK' , 3 => 'JALAN SESAK' , 2 => 'KEMALANGAN' , 7 => 'KENDERAAN ROSAK' , 6 =&

由于PHP>5.4版,不再可以使用“+”组合2个数字键数组。在不更改键的情况下组合2个数字键数组的任何替代方法?比如说

myarray1 =  [0 => '-'];
myarray2 = [8 => 'CUACA BURUK' ,
            3 => 'JALAN SESAK' ,
            2 => 'KEMALANGAN' ,
            7 => 'KENDERAAN ROSAK' ,
            6 => 'KURSUS/BENGKEL/SEMINAR' ,
            9 => 'LAIN-LAIN' ,
            4 => 'LAWATAN TAPAK/KERJA LUAR' ,
            5 => 'MESYUARAT',
            ];

我想创建一个组合框,第二个数组是我从数据库中获取的数组,我想为用户添加一个空白选项。我希望在合并2数组时保留键和元素。如果我使用数组合并,它将更改键。

由于您只想向数组中添加一个元素,我建议从数据库中填充一个数组,然后使用元素分配来创建-元素,如下所示:

$options = [ /* Values from database */ ];
$options[0] = '-';

因为您只想向数组中添加一个元素,所以我建议从数据库中填充一个数组,然后使用元素分配来创建-元素,如下所示:

$options = [ /* Values from database */ ];
$options[0] = '-';

我不知道你为什么这么想
$myarray1+$myarray2
在PHP中一直是一个联合体。这种行为从未改变。然而,union和
数组\u merge
做的是两件截然不同的事情
$myarray1+$myarray2
将从
$myarray2
$myarray1
添加元素,
$myarray1
中不存在谁的密钥
array\u merge($myarray1,$myarray2)
将所有元素合并在一起如果键是数字键,则覆盖字符串键

所以在你上面的例子中

<?php
$myarray1 = [0 => '-'];
$myarray2 = [
             8 => 'CUACA BURUK',
             3 => 'JALAN SESAK',
             2 => 'KEMALANGAN',
             7 => 'KENDERAAN ROSAK',
             6 => 'KURSUS/BENGKEL/SEMINAR',
             9 => 'LAIN-LAIN',
             4 => 'LAWATAN TAPAK/KERJA LUAR',
             5 => 'MESYUARAT'
            ];

$newArray = $myarray1 + $myarray2;

var_dump($newArray);

从(用3v4l.org测试)开始,我不知道为什么会这样想
$myarray1+$myarray2
在PHP中一直是一个联合体。这种行为从未改变。然而,union和
数组\u merge
做的是两件截然不同的事情
$myarray1+$myarray2
将从
$myarray2
$myarray1
添加元素,
$myarray1
中不存在谁的密钥
array\u merge($myarray1,$myarray2)
将所有元素合并在一起如果键是数字键,则覆盖字符串键

所以在你上面的例子中

<?php
$myarray1 = [0 => '-'];
$myarray2 = [
             8 => 'CUACA BURUK',
             3 => 'JALAN SESAK',
             2 => 'KEMALANGAN',
             7 => 'KENDERAAN ROSAK',
             6 => 'KURSUS/BENGKEL/SEMINAR',
             9 => 'LAIN-LAIN',
             4 => 'LAWATAN TAPAK/KERJA LUAR',
             5 => 'MESYUARAT'
            ];

$newArray = $myarray1 + $myarray2;

var_dump($newArray);

从(使用3v4l.org测试)开始的所有内容中。

但是有些混淆:
$myarray2[0]='-'
似乎是您所需要的全部,但是呢?有点困惑:
$myarray2[0]='-'似乎就是你所需要的一切,那怎么办?