PHP $ var + = array(' x',' y')

时间:2015-05-27 19:07:59

标签: php arrays

很抱歉,这只是为了我的理解!

我刚开始学习php。

我将不同方法中的一些值添加到数组中,这是一个奇怪的问题,我无法在网上找到答案。
(对不起,如果它是愚蠢的,我只是想知道它为什么这样做。)

我的PHP / HTML代码:

<?php 
$test[] = 1;
$test += array('2','3','4');
$test += array('4in4',5 => '5');
$test[] = 6;
$test[] += 7;
?>
<!doctype html>
<html lang="fr-CA" >
<head>
<meta charset="UTF-8">
<body>
<?php echo '<h1>Test de Tableau</h1>','<br>',
    '$test[0] = ',$test[0],'<br>',
    '$test[1] = ',$test[1],'<br>',
    '$test[2] = ',$test[2],'<br>',
    '$test[3] = ',$test[3],'<br>',
    '$test[4] = ',$test[4],'<br>',
    '$test[5] = ',$test[5],'<br>',
    '$test[6] = ',$test[6],'<br>',
    '$test[7] = ',$test[7],'<br>',
    '<h4>count = ',count($test),'/8</h4>'; ?>
</body>


这是结果:

Test de Tableau

$ test [0] = 1
$ test [1] = 3
$ test [2] = 4
$ test [3] =
注意:未定义的偏移量:第26行的/opt/lampp/htdocs/mhx/test/index.php中的3
$ test [4] =
注意:未定义的偏移量:第27行的/opt/lampp/htdocs/mhx/test/index.php中的4
$ test [5] = 5
$ test [6] = 6
$ test [7] = 7
count = 6/8

谢谢回答!
MHX

1 个答案:

答案 0 :(得分:2)

这篇文章可能已经回答过:+ operator for array in PHP?

基本上,这里发生了什么。你初始化了你的数组:

$test = [0 => 1];

接下来,您要为其添加新数组:

[0 => '2', 1 => '3', 2 => '4'];

第一个索引已经存在,所以跳过它给我们:

$test = [0 => 1, 1 => '3', 2 => '4'];

现在,您正在添加另一个数组:

[0 => '4in4', 5 => '5'];

同样,第一个索引存在,所以我们得到:

$test = [0 => 1, 1 => '3', 2 => '4', 5 => '5'];

到目前为止,您可以看到偏移3和4缺失,因此您的注意事项如上所述。此外,内部指针现在为6,因为最后添加的元素是5。

然后你添加6,然后是7,给我们最后一个数组:

$test = [0 => 1, 1 => '3', 2 => '4', 5 => '5', 6 => 6, 7 => 7];

我希望这会有所帮助。

编辑:在向数组中添加其他元素时,您可以这样写:

$test[] = 1;

如果您需要合并两个数组,请查看array_merge()

$test = array_merge($test, [1, 2, 3]);

干杯!