我有一组对象,对于每个对象,我都有名称,类别,价格和其他一些信息。从阵列我要删除具有特定类别的对象。
public function getCSV()
{
$contents = Storage::disk('dropbox')->get('InventoryReport.csv');
$lines = explode(PHP_EOL, $contents);
$items = array();
// categories to ignore when importing
$ignore = ['Misc', 'Soft Drinks', 'Juices', 'Water', 'Snack', 'Energy Drink', 'Tobacco', 'Gum', 'Account Payment'];
foreach ($lines as $line)
{
$items[] = str_getcsv($line);
}
array_shift($items);
array_pop($items);
// foreach ($items as $item)
// {
// $i = Item::where('upc', $item[7])->first();
// if($i == null)
// {
// $name = str_slug($item[8], '-');
// // $inventory = Item::create(
// // ['upc' => $item[7],
// // 'name' => $item[8],
// // 'price' => $item[9],
// // 'stock' => $item[10],
// // 'cost' => $item[11],
// // 'category' => $item[2],
// // 'slug' => $name
// // ]
// // );
// }
// }
}
上面是我的代码。我想删除在$ ignore数组内具有类别thats的数组中的所有项目。在将其存储到数据库之前。
答案 0 :(得分:1)
替换此:
QImageReader
具有:
foreach ($lines as $line)
{
$items[] = str_getcsv($line);
}
现在foreach ($lines as $line) {
$item = str_getcsv($line);
if (count($item) > 1 && !in_array($item[2], $ignore)) {
$items[] = $item;
}
}
仅包含您要查找的项目。
注意:请查看是否仍需要调用$items
和array_shift
,具体取决于这两项的类别。