PHP array_combine 如果不为空
PHP array_combine if not null
我只想在值存在时合并数据。示例:
// 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
即使其中一个为null也需要忽略(例子)
// array 1
array:4 [▼
0 => "qwfd"
1 => "qw2e3"
2 => "i am here"
3 => null
]
// array 2
array:4 [▼
0 => "qwef"
1 => "w2"
2 => null
3 => null
]
在这种情况下,数组 1
、2=>
具有值,但因为数组 2
、2=>
没有。也不应该合并。
My code
$names = $request->input('social_media_name'); // array 1
$usernames = $request->input('social_media_username'); // array 2
$newArray = array_combine($names, $usernames);
有什么想法吗?
这很简单。循环并检查索引处的值是否为空。如果其中一个是,则跳过它,否则设置键和值对。
<?php
$result = [];
foreach($names as $index => $val){
if (is_null($val) || is_null($usernames[ $index ]) continue;
$result[ $val ] = $usernames[ $index ];
}
print_r($result);
仅当$name, $username
不为空时,使用array_filter
过滤掉return的数组。或者即使其中之一为 null 也不会被 returned.
$names = [0 => "qwfd",1 => "qw2e3",2 => "i am here",3 => null];
$usernames = [0 => "qwef",1 => "w2",2 => null,3 => null];
$newArray = array_combine($names, $usernames);
$newArray = array_filter($newArray,
fn($name, $username)=>!is_null($name) and
!is_null($username),ARRAY_FILTER_USE_BOTH);
echo '<pre>'; print_r($newArray);
打印:
Array
(
[qwfd] => qwef
[qw2e3] => w2
)
我只想在值存在时合并数据。示例:
// 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
即使其中一个为null也需要忽略(例子)
// array 1
array:4 [▼
0 => "qwfd"
1 => "qw2e3"
2 => "i am here"
3 => null
]
// array 2
array:4 [▼
0 => "qwef"
1 => "w2"
2 => null
3 => null
]
在这种情况下,数组 1
、2=>
具有值,但因为数组 2
、2=>
没有。也不应该合并。
My code
$names = $request->input('social_media_name'); // array 1
$usernames = $request->input('social_media_username'); // array 2
$newArray = array_combine($names, $usernames);
有什么想法吗?
这很简单。循环并检查索引处的值是否为空。如果其中一个是,则跳过它,否则设置键和值对。
<?php
$result = [];
foreach($names as $index => $val){
if (is_null($val) || is_null($usernames[ $index ]) continue;
$result[ $val ] = $usernames[ $index ];
}
print_r($result);
仅当$name, $username
不为空时,使用array_filter
过滤掉return的数组。或者即使其中之一为 null 也不会被 returned.
$names = [0 => "qwfd",1 => "qw2e3",2 => "i am here",3 => null];
$usernames = [0 => "qwef",1 => "w2",2 => null,3 => null];
$newArray = array_combine($names, $usernames);
$newArray = array_filter($newArray,
fn($name, $username)=>!is_null($name) and
!is_null($username),ARRAY_FILTER_USE_BOTH);
echo '<pre>'; print_r($newArray);
打印:
Array
(
[qwfd] => qwef
[qw2e3] => w2
)