我有这个代码,用于存储$ products中的值。我不确定$ products是否是数组或其他东西。
我需要删除前100个值。
// Get all products
$products = Product::getProducts(1, 0, 1000000, 'id_product', 'DESC', false, true, $context);
答案 0 :(得分:1)
if (is_array($products))
$products = array_slice($product, 100);
请参阅this page深入了解。
答案 1 :(得分:0)
根据array_slice()菜单,签名为:
array array_slice(array $ array,int $ offset [,int $ length = NULL [,bool $ preserve_keys = false]])
由于OP希望删除前100个元素,因此它应该是:
$first_100_elements = array_slice($products, 0, 100);
答案 2 :(得分:0)
首先,您需要知道方法Product :: getProducts()的返回类型。您可以使用gettype()甚至var_dump()来完成此操作。
如果是数组,请使用以下内容:
$productsWithoutFirst100 = array_slice($product, 100);
我将得到数组的所有元素,从第100个元素到结尾,不包括前100个(从0到99)。
它是产品的集合,因此它可以是实现Iterable接口的对象。如果是这种情况,array_slice函数将不起作用。您可以将对象放入foreach中,并对其进行处理:
$productsArrayWithoutFirst100 = [];
foreach($products as $key =>$product){
if($key >= 100) $productsArrayWithoutFirst100 = $product;
}
这是一个想法,但还有另一种方法来实现它。希望它有所帮助。