Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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,我有5个不同的数组,它们都具有相同的长度(5),但5个数组中的每个数组只有1个值和4个空白值。如何将5个数组合并为1个(不包括空单元格): Array ( [0] => [1] => 5.0 [2] => [3] => [4] => ) Array ( [0] => SC28 [1] => [2] => [3] => [4] => ) Arr

我有5个不同的数组,它们都具有相同的长度(5),但5个数组中的每个数组只有1个值和4个空白值。如何将5个数组合并为1个(不包括空单元格):

Array
(
    [0] => 
    [1] => 5.0
    [2] => 
    [3] => 
    [4] => 
)
Array
(
    [0] => SC28
    [1] => 
    [2] => 
    [3] => 
    [4] => 
)
Array
(
    [0] => 
    [1] => 
    [2] => 
    [3] => Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz
    [4] => 
)
Array
(
    [0] => 
    [1] => 
    [2] => 1999
    [3] => 
    [4] => 
)
Array
(
    [0] => 
    [1] => 
    [2] => 
    [3] => 
    [4] => VMWare
)
要像这样合并到一个数组中,请执行以下操作:

Array
(
    [0] => SC28
    [1] => 5.0
    [2] => 1999
    [3] => Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz
    [4] => VMWare
)

您可以使用
array\u merge
(或者
array\u replace
)和
array\u filter

<?php

$array1 = array('Hello', null, 'world', '');
$array2 = array(0, 0, 'Saluton', '', 'mondo');
$array3 = array();

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

print_r($total);
请注意,数组已重新编号,所有与false等价的值(即null,空字符串,零,布尔值false)已被删除

如果要保留某些值,需要传递到
array\u filter
,该过滤器仅在您提供的情况下返回
false

如果要将阵列精确地滑到一起,可以使用
array\u replace
并对阵列分别进行过滤

print_r(array_replace(
    array_filter(array( null, '5.0', null, null, null)),
    array_filter(array( 'SC28', null, null, null, null)),
    array_filter(array( null, null, null, 'Xeon', null))
));
这将产生:

Array
(
    [1] => 5.0
    [0] => SC28
    [3] => Xeon
)
使用
ksort

Array
(
[0] => SC28
[1] => 5.0
[3] => Xeon
)
请注意,丢失的键仍然丢失(如果提供所有数组,将获得所需的结果)。但是,请注意,使用第二种方法,如果两个数组中的两个键具有相同的值,则后者将覆盖前者

Array
(
[0] => SC28
[1] => 5.0
[3] => Xeon
)