【发布时间】:2020-10-05 11:27:16
【问题描述】:
我将带有子数组值数据的数组添加到mysql 数据库中,如下所示:
{"2":[
{"title":"english title","link":"english url"},
{"title":"","link":""}],
"1":[
{"title":"french title","link":"french url"},
{"title":"","link":""}]}
我尝试使用array_filter 和array_map 删除empty 子数组值,如下所示:
var_dump(array_filter(array_map('array_filter', $links)));
现在,当我使用 var_dump 检查时,我看到了这个结果,array_filter 和 array_map 无法删除空值:
array(2) {
[2]=>
array(3) {
[0]=>
array(2) {
["title"]=>
string(13) "english title"
["link"]=>
string(11) "english url"
}
[1]=>
array(2) {
["title"]=>
string(0) ""
["link"]=>
string(0) ""
}
}
[1]=>
array(3) {
[0]=>
array(2) {
["title"]=>
string(12) "french title"
["link"]=>
string(10) "french url"
}
[1]=>
array(2) {
["title"]=>
string(0) ""
["link"]=>
string(0) ""
}
}
}
实际操作中,我如何删除 empty 子数组值?!
更新:我需要这个结果:
Array
(
[2] => Array
(
[0] => Array
(
[title] => english title
[link] => english url
)
)
[1] => Array
(
[0] => Array
(
[title] => french title
[link] => french url
)
)
)
【问题讨论】:
-
你的预期输出是什么?
-
如果你认为由 JSON 解码
{"title":"","link":""}产生的对象或数组会被 PHP 视为“空”……那你就错了。 -
@Nick:我需要像这样从数组中删除空值:
Array([2] => Array( [0] => Array([title] => english title [link] => english url)) [1] => Array([0] => Array( [title] => french title [link] => french url )))
标签: php arrays array-filter