arrays php字符串长度 - 无法在PHP中连接2个数组




strip_tags用法 str_replace正则 (9)

两者都有一个0的键,组合数组的方法将折叠重复。 尝试使用array_merge()代替。

$arr1 = array('foo'); // Same as array(0 => 'foo')
$arr2 = array('bar'); // Same as array(0 => 'bar')

// Will contain array('foo', 'bar');
$combined = array_merge($arr1, $arr2);

如果数组中的元素使用不同的键,则+运算符会更合适。

$arr1 = array('one' => 'foo');
$arr2 = array('two' => 'bar');

// Will contain array('one' => 'foo', 'two' => 'bar');
$combined = $arr1 + $arr2;

编辑:添加了一个代码片段以澄清

我最近学会了如何使用PHP中的+运算符连接2个数组。

但请考虑这段代码......

$array = array('Item 1');

$array += array('Item 2');

var_dump($array);

输出是

array(1){[0] => string(6)“Item 1”}

为什么这不起作用? 跳过速记并使用$array = $array + array('Item 2')也不起作用。 它与钥匙有关吗?


这适用于非关联数组:

while(($item = array_shift($array2)) !== null && array_push($array1, $item));


你可以使用运营商。 $ array3 = $ array1。$ array2;


试试array_merge。

$array1 = array('Item 1');

$array2 = array('Item 2');

$array3 = array_merge($array1, $array2);

我认为它是因为你没有给任何一个键赋值,所以它们都有0的键,并且+没有重新索引,所以它试图重写它。


$array = array('Item 1');

array_push($array,'Item 2');

要么

$array[] = 'Item 2';

试着说

$array[] = array('Item 2'); 

虽然看起来你正在尝试将数组添加到数组中,因此$array[][]但这不是你的标题所暗示的。


之前的所有答案都不正确! merge实际上合并了数组,这意味着,如果数组有一个公共项,则其中一个副本将被省略。 工会也是如此

我没有找到这个问题的“解决方法”,但实际上是手动执行...

它在这里:

<?php
$part1 = array(1,2,3);
echo "array 1 = \n";
print_r($part1);
$part2 = array(4,5,6);
echo "array 2 = \n";
print_r($part2);
$ans = NULL;
for ($i = 0; $i < count($part1); $i++) {
    $ans[] = $part1[$i];
}
for ($i = 0; $i < count($part2); $i++) {
    $ans[] = $part2[$i];
}
echo "after arrays concatenation:\n";
print_r($ans);
?>


Null Coalesce Operator php

对于需要与isset()一起使用三元数的常见情况,已将空合并运算符(??)添加到PHP7中。 它返回第一个操作数(如果存在)并且不为NULL,否则返回其第二个操作数,如下例所示:

$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; 




php arrays concatenation