Closed gunjiro closed 8 years ago
selectManyのセレクタで最初に空のリストが返却されるとselectManyの結果も空になります。
空のリストが含まれる場合でも次のような場合は
$data = array( array( 'values' => array(1, 2) ), array( 'values' => array() ), array( 'values' => array(3, 4) ) ); print_r(Ginq::from($data)->selectMany('[values]')->toList());
以下のように正常な結果が得られます。
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
しかし、最初に空のリストがある場合
$data = array( array( 'values' => array() ), array( 'values' => array(1, 2) ), array( 'values' => array(3, 4) ) ); print_r(Ginq::from($data)->selectMany('[values]')->toList());
以下のように結果は空になってしまいます。
Array ( )
配列の入れ子のGinqだけでなくGinqの入れ子もtoArrayせずflattenできればなお良いと思われます。 groupByなどを使うと自然とginqの入れ子が発生するので。
selectManyのセレクタで最初に空のリストが返却されるとselectManyの結果も空になります。
空のリストが含まれる場合でも次のような場合は
以下のように正常な結果が得られます。
しかし、最初に空のリストがある場合
以下のように結果は空になってしまいます。