2016-05-25 16 views
0

私は$製品に値を格納するこのコードを持っています。 $製品が配列か他のものかどうかは分かりません。変数の最初の100要素を削除しますか?

最初の100個の値を削除する必要があります。

// Get all products 
$products = Product::getProducts(1, 0, 1000000, 'id_product', 'DESC', false, true, $context); 

答えて

1
if (is_array($products)) 
    $products = array_slice($product, 100); 

は深いで取得するthis pageを参照してください。 array_slice()メニューによれば、署名は

+0

他の方法ではありませんか? '$ products = array_slice($ products、100、count($ products)-1);' – Peter

0

配列array_slice(配列$配列、$オフセットINT [、int型$長= NULL] [、BOOL $ preserve_keys = FALSE])

OPは最初の100個の要素を削除したいので、それは次のようになります。すべての

$first_100_elements = array_slice($products, 0, 100); 
0

まず、あなたがいる場合の方法製品の戻り値の型を知っておく必要があります:: getProdu cts()。 gettype()、またはvar_dump()を使用して行うこともできます。

それが配列の場合、このようなものを使用します。

$productsWithoutFirst100 = array_slice($product, 100); 

を私は、キー0から99まで(最初の100を除く、最後まで、百分の要素から、配列のすべての要素を取得します)。

これは製品のコレクションなので、Iterableインターフェイスを実装するオブジェクトにすることができます。その場合、array_slice関数は機能しません。あなたはforeachのにオブジェクトを入れ、その上に作業することができます:

$productsArrayWithoutFirst100 = []; 
foreach($products as $key =>$product){ 
    if($key >= 100) $productsArrayWithoutFirst100 = $product; 
} 

がアイデアを厥が、それを達成するための別の方法があります。それが役に立てば幸い。

関連する問題