如何在不指定确切键名的情况下检查键的值是否为空?
此代码未按预期工作。例如,键3-3-divisa
的值为空,但未由空函数
foreach ($data as $key => $value) {
if (!empty($value[0]) && !empty($value[1])) {
var_dump($value[0]);
var_dump($value[1]);
}
}
输出
array (size=1)
'3-1-serie_quant' => string 'test' (length=5)
array (size=1)
'3-1-divisa' => string 'test' (length=5)
array (size=1)
'3-2-serie_quant' => string '' (length=5)
array (size=1)
'3-2-divisa' => string '' (length=5)
array (size=1)
'3-3-serie_quant' => string '' (length=5)
array (size=1)
'3-3-divisa' => string '' (length=5)
array (size=1)
预期产出:
array (size=1)
'3-1-serie_quant' => string 'test' (length=5)
array (size=1)
'3-1-divisa' => string 'test' (length=5)
$ data数组:
array (size=5)
0 =>
array (size=2)
0 =>
array (size=1)
'3-1-serie_quant' => string 'test' (length=5)
1 =>
array (size=1)
'3-1-divisa' => string 'test' (length=5)
1 =>
array (size=2)
0 =>
array (size=1)
'3-2-serie_quant' => string '' (length=5)
1 =>
array (size=1)
'3-2-divisa' => string '' (length=5)
2 =>
array (size=2)
0 =>
array (size=1)
'3-3-serie_quant' => string '' (length=5)
1 =>
array (size=1)
'3-3-divisa' => string '' (length=5)
3 =>
array (size=2)
0 =>
array (size=1)
'3-4-serie_quant' => string '' (length=0)
1 =>
array (size=1)
'3-4-divisa' => string '' (length=0)
答案 0 :(得分:1)
您可以使用array_filter()
:
$data = array_filter($data, function($x)
{
return array_filter($x, function($y)
{
return array_filter($y) == $y;
}) == $x;
});
答案 1 :(得分:1)
似乎$ value [0]和$ value [1]是数组,所以请尝试以下方法:
foreach ($data as $value) {
$field0 = reset($value[0]);
if (!empty($field0)) {
var_dump($value[0]);
}
$field1 = reset($value[1]);
if (!empty($field1)) {
var_dump($value[1]);
}
}
答案 2 :(得分:0)
试试这个:
foreach ($data as $key => $value) {
if (!empty($value[0]) && !empty($value[1]) && strlen($value[0]) && strlen($value[1])) {
var_dump($value[0]);
var_dump($value[1]);
}
}
答案 3 :(得分:0)
答案 4 :(得分:0)
您的$value
是包含size = 1
的数组:
array (size=1)
'3-3-divisa' => string '' (length=5)
此外,一个键不是0
。因此,$value[0]
和$value[1]
不存在于您的数组中。
尝试,如果您正在使用PHP 5.4 +:
if(!empty(array_values($values)[0])