嗨,我知道array_filter函数可以用来从数组中删除null和空值。但是,当数组中的每个键都相同时,就不是这样了。
$array4 = array('bean1' => 'blue', 'bean2' => null, 'bean3' => 'red', 'bean4' => 'white');
$keynull = array_search(null, $array4);
$firephp -> info('$Keynull = '.$keynull);
if($keynull)
{
$firephp -> info('There is one or more null or empty strings in $array4!, so clean it up');
$arrayfiltered = array_filter($array4);
$firephp -> info($arrayfiltered);
};
上面的脚本可以工作。但是如果我使用bean,而不是bean#,会怎样呢?见下面....
$array4 = array('bean' => 'blue', 'bean' => null, 'bean' => 'red', 'bean' => 'white');
$keynull = array_search(null, $array4);
$firephp -> info('$Keynull = '.$keynull);
if($keynull)
{
$firephp -> info('There is one or more null or empty strings in $array4!, so clean it up');
$arrayfiltered = array_filter($array4);
$firephp -> info($arrayfiltered);
};
它似乎不起作用。请建议。由于
好吧,这是完全有意义的,因为数组不能有4个值具有相同的键。基本上,键的值会被最近分配的值覆盖。看清楚图片:
<?php
$array1 = array('bean1' => 'blue', 'bean2' => null,
'bean3' => 'red', 'bean4' => 'white');
print_r($array1);
?>
输出Array
(
[bean1] => blue
[bean2] =>
[bean3] => red
[bean4] => white
)
<?php
$array2 = array('bean' => 'blue', 'bean' => null,
'bean' => 'red', 'bean' => 'white');
print_r($array2);
?>
输出Array
(
[bean] => white
)
我不知道这是否会有帮助,但不是使用PHP过滤,为什么不直接用SQL过滤?
SELECT batch FROM test
WHERE mfg_code = mfgnum AND
batch IS NOT NULL
GROUP BY batch ORDER BY batch DESC;