最佳答案
在PHP编程中,我们常常须要处理数组数据,尤其是在停止数据验证或许筹备JSON呼应时,须要去除数组中的空值。本文将介绍多少种方法来去除数组中的空值,并前去紧缩后的JSON格局。 起首,我们可能利用array_filter函数结合匿名函数(闭包)来过滤数组中的空值。以下是一个示例代码: <?php $array = array(0 => 'value', 1 => '', 2 => 'null', 3 => null, 4 => '0', 5 => false); $result = array_filter($array, function($value) { return $value !== null && $value !== ''; }); print_r($result); ?> 这段代码将会输出: Array ( [0] => value [2] => null [4] => 0 [5] => false ) 留神:鄙人面的代码中,我们抉择了保存'0'跟false,因为它们偶然在逻辑上是有效的值。 其余,假如你只想去除值为空字符串的元素,可能直接利用: <?php $result = array_filter($array, 'strlen'); ?> 这是因为strlen函数对空字符串会前去0,array_filter会主动去除那些使回调函数前去false的元素。 假如你想要获得一个不保存键的纯值数组,可能在array_filter后利用array_values函数: <?php $result = array_values(array_filter($array, function($value) { return $value !== null && $value !== ''; })); ?> 最后,为了前去紧缩后的JSON格局,我们可能利用json_encode函数的JSON_FORCE_OBJECT标记跟JSON_UNESCAPED_UNICODE来掉掉落更紧凑的JSON字符串: <?php echo json_encode($result, JSON_FORCE_OBJECT | JSON_UNESCAPED_UNICODE); ?> 如许,我们就掉掉落了一个不空值的紧缩JSON东西。 总结,去除数组中的空值是PHP中罕见的须要,经由过程利用array_filter、匿名函数、json_encode等东西函数,我们可能轻松实现这一功能。