2

私は単純な配列を持っています

$a = ['a', '', 'b','c','d'];

もし私がそれをjson_encodeすれば、私は持っているでしょう

["a","","b","c","d"]

しかし、array_filterまたはarray_diffを使用して、空の値を削除しようとすると

私が持っているでしょう

{"0":"a","2":"b","3":"c","4":"d"}

しかし、配列キーをエンコードする必要はありません。空の要素と配列キーのないエンコードされた配列が必要です。解決方法は?

PHP サンドボックスの例: http://sandbox.onlinephpfunctions.com/code/91635a5df7fcd954dd64fe92089f2beadc81c3c4

4

2 に答える 2

4

これを試して:

$a = array_values(array_filter($a));

これにより、配列のキーが連続するようにリセットされます。配列キーがどのように機能するかを考えてみましょう:

$a = ['a', 'b'];       // [0 => 'a', 1 => 'b']
unset($a[0]);          // [1 => 'b']
$a = array_values($a); // [0 => 'b']
于 2014-03-05T11:53:52.533 に答える