2016-12-16 94 views
1

我有這個集合稱爲$ api_items。我想刪除此集合中的所有空值:過濾器Laravel集合不起作用

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 [▶] 

    } 

I'm使用各種方法來篩選:

$filtered = $api_items->each(function ($item, $key) { 
    if($item != null) { 
     return $item; 
    } 
}); 

但過濾再次回到我的空值$ ...

回答

1

我assum的兩個集合始終相同的大小,該解決方案將是這樣的:

$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); 

希望這有助於。

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; 
} 
0

如果你想從你的陣列擺脫的項目,請嘗試使用filter()功能。我也建議使用您的真相陳述直列嘗試,沒有$鍵/ $ value對

$filtered = $api_items->filter(function ($item) { 
    return $item !== null; 
}); 

默認情況下,過濾器會看的價值觀和你結束了一個更緊湊的語句。