我有这个名为$ api_items的集合。我想删除此集合的所有空值:
Collection {#365 ▼
#items: array:2 [▼
0 => Article {#342 ▼
+user_id: null
+article_id: 1304
+family_id: null
+active: true
+creation_date: null
+name: "CUENTO "AMIGOS/AS PARA SIEMPRE" ESTANDAR"
+description: null
+detail: null
+constructor_name: null
+stock_available: true
+stock: null
+prices: array:4 [▶]
}
1 => Article {#347 ▼
+user_id: null
+article_id: 1885
+family_id: null
+active: true
+creation_date: null
+name: "CUENTO "AMIGOS/AS PARA SIEMPRE" LUXE"
+description: null
+detail: null
+constructor_name: null
+stock_available: true
+stock: null
+prices: array:4 [▶]
}
我正在使用每种方法进行过滤:
$filtered = $api_items->each(function ($item, $key) {
if($item != null) {
return $item;
}
});
但是,$ filtered再次返回null值...
答案 0 :(得分:1)
我认为两个集合的大小始终相同,解决方案将类似于:
$nested_result = [];
foreach($api_items as $index => $item){
$item->name = $seo_items[$index]->name;
$item->description = $seo_items[$index]->description;
$item->detail = $seo_items[$index]->detail;
$nested_result = $item;
}
然后使用 collect()
方法从$nested_result
数组创建集合实例:
$nested_collection = collect($nested_result);
希望这有帮助。
答案 1 :(得分:0)
这是使用代码
$newArray = array();
foreach($data as $key => $inner_array) {
$ke = [];
foreach($inner_array as $key_v => $inner_array_v){
if($inner_array_v != 'N/A'){
$ke[] = $inner_array_v;
}
}
$newArray[] = $ke;
}
答案 2 :(得分:0)
如果您试图摆脱阵列中的项目,请尝试使用filter()
功能。我还建议尝试使用你的真实声明内联而不使用$ key / $ value对
$filtered = $api_items->filter(function ($item) {
return $item !== null;
});
默认情况下,过滤器会查看值,最后会得到一个更紧凑的语句。