Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除json_编码后的空数组元素_Php_Json_Array Difference_Array Filter - Fatal编程技术网

Php 删除json_编码后的空数组元素

Php 删除json_编码后的空数组元素,php,json,array-difference,array-filter,Php,Json,Array Difference,Array Filter,我有一个简单的数组 $a = ['a', '', 'b','c','d']; 如果我json\u encode ["a","","b","c","d"] 但是如果我尝试用array\u filter或array\u diff删除空值 我要 {"0":"a","2":"b","3":"c","4":"d"} 但是我不需要对数组键进行编码,我需要一个没有空元素和数组键的编码数组,如何求解 Php沙盒示例:尝试以下方法: $a = array_values(array_filter($a));

我有一个简单的数组

$a = ['a', '', 'b','c','d'];
如果我json\u encode

["a","","b","c","d"]
但是如果我尝试用array\u filterarray\u diff删除空值

我要

{"0":"a","2":"b","3":"c","4":"d"}
但是我不需要对数组键进行编码,我需要一个没有空元素和数组键的编码数组,如何求解

Php沙盒示例:

尝试以下方法:

$a = array_values(array_filter($a));
这会将数组的键重置为连续键。考虑数组键是如何工作的:

$a = ['a', 'b'];       // [0 => 'a', 1 => 'b']
unset($a[0]);          // [1 => 'b']
$a = array_values($a); // [0 => 'b']

这将重置数组键

$a = ['a', '', 'b', 'c', 'd'];
echo json_encode(array_values(array_filter($a)));

谢谢你,很有魅力,你先回答了,所以我标记为答案