您好我知道array_filter函数可用于从数组中删除null和empty值。但不是当数组中的每个键都相同时。
$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);
};
它似乎不起作用。请指教。感谢
答案 0 :(得分:2)
嗯,这很有道理,因为数组不能有相同键的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
)
我不知道这是否会有所帮助,但为什么不直接使用SQL过滤?
SELECT batch FROM test
WHERE mfg_code = mfgnum AND
batch IS NOT NULL
GROUP BY batch ORDER BY batch DESC;
无论采用何种提取方式,都可以使用。