之后删除了 json_encode 中的空数组元素

MyM*_*ial 3 php json array-filter array-difference

我有简单的数组

$a = ['a', '', 'b','c','d'];
Run Code Online (Sandbox Code Playgroud)

如果我对它进行 json_encode,我就会得到

["a","","b","c","d"]
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试使用array_filterarray_diff删除空值

我会有

{"0":"a","2":"b","3":"c","4":"d"}
Run Code Online (Sandbox Code Playgroud)

但我不需要对数组键进行编码,我需要一个没有空元素且没有数组键的编码数组,如何解决?

PHP沙箱示例:http://sandbox.onlinephpfunctions.com/code/91635a5df7fcd954dd64fe92089f2beadc81c3c4

cmb*_*ley 5

尝试这个:

$a = array_values(array_filter($a));
Run Code Online (Sandbox Code Playgroud)

这会将数组的键重置为连续的。考虑数组键的工作原理:

$a = ['a', 'b'];       // [0 => 'a', 1 => 'b']
unset($a[0]);          // [1 => 'b']
$a = array_values($a); // [0 => 'b']
Run Code Online (Sandbox Code Playgroud)