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

  • 本文关键字:array var PHP 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] =
注意:在/opt/lampp/htdocs/mhx/test/index.php第26行
$test[4] =
注意:第27行/opt/lampp/htdocs/mhx/test/index.php中未定义的偏移量:4
$test[5] = 5
$test[6] = 6
$test[7] = 7
count = 6/8

谢谢你的回答!
MHX

这可能已经回答了这个帖子:+操作符数组在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];

我希望这对你有帮助。

EDIT:当向数组中添加另一个元素时,您可以这样写:

$test[] = 1;

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

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

干杯!

最新更新