PHP数组\u如果不为空则合并
我只想在值存在时合并数据。例如:PHP数组\u如果不为空则合并,php,arrays,array-combine,Php,Arrays,Array Combine,我只想在值存在时合并数据。例如: // array 1 array:4 [▼ 0 => "qwfd" 1 => "qw2e3" 2 => null 3 => null ] // array 2 array:4 [▼ 0 => "qwef" 1 => "w2" 2 => null 3 => null ] 我需要忽略这两个数组中的2=>和3
// array 1
array:4 [▼
0 => "qwfd"
1 => "qw2e3"
2 => null
3 => null
]
// array 2
array:4 [▼
0 => "qwef"
1 => "w2"
2 => null
3 => null
]
我需要忽略这两个数组中的2=>
和3=>
,因为它们都是空的
Ps
即使其中一个为空,也需要忽略(示例)
在本例中,数组1
,2=>
有值,但由于数组2
,2=>
没有值。它也不应该合并
我的代码
$names = $request->input('social_media_name'); // array 1
$usernames = $request->input('social_media_username'); // array 2
$newArray = array_combine($names, $usernames);
有什么想法吗?这很简单。循环并检查索引处的值是否为null。如果其中一个是,则跳过它,否则设置键和值对
<?php
$result = [];
foreach($names as $index => $val){
if (is_null($val) || is_null($usernames[ $index ]) continue;
$result[ $val ] = $usernames[ $index ];
}
print_r($result);
使用array\u filter
筛选出仅当$name、$username
不为空时返回的数组。或者即使其中一个为null也不能返回
$names=[0=>“qwfd”,1=>“qw2e3”,2=>“我在这里”,3=>null];
$usernames=[0=>“qwef”,1=>“w2”,2=>null,3=>null];
$newArray=array\u combine($names,$usernames);
$newArray=array\u过滤器($newArray,
fn($name,$username)=>!为空($name)且
!is_null($username),数组\u过滤器\u使用\u两者);
回声'
<?php
$result = [];
foreach($names as $index => $val){
if (is_null($val) || is_null($usernames[ $index ]) continue;
$result[ $val ] = $usernames[ $index ];
}
print_r($result);
Array
(
[qwfd] => qwef
[qw2e3] => w2
)