0

配列がありますが、配列に含まれる要素の数がわかりません。1 かもしれませんし、500 かもしれませんが、要素の最大数を 21 にする必要があります。

を使用して長さを確認できることはわかっていますが、長count()すぎる場合はどうすれば残りを切り落とすことができますか? ありがとう。

4

6 に答える 6

4

SplFixedArray固定サイズの配列を管理するための良い方法として使用できます.....

   $array = new SplFixedArray(21);

   $array =  SplFixedArray::fromArray($array);
   $array->setSize(21);

PHP ドキュメントを参照してください

于 2012-10-11T15:37:39.657 に答える
2

このコードを試してください:

if(count($array) > 21){
    $subarray = array_slice($array, 0, 21);
}

説明:

array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )

array_slice() は、オフセットおよび長さパラメーターで指定された配列 array から要素のシーケンスを返します。

于 2012-10-11T15:38:46.707 に答える
1

配列が $arr の場合:

$subArray = array_slice($arr,0,21);
于 2012-10-11T15:37:22.393 に答える
1

array_slice を使用して、超過部分を切り取ることができます。

if(count($array) > 21){
    $array = array_slice($array, 0, 21);
}

http://php.net/manual/function.array-slice.php

于 2012-10-11T15:37:51.237 に答える
1

array_sliceオフセットを 0、長さを 21 に指定して使用する必要があります。

 if(count($your_array) > 21){
  $new_array = array_slice($your_array, 0, 21);
}
于 2012-10-11T15:38:05.870 に答える
1

array_spliceを使用して、必要以上の要素を削除できます

于 2012-10-11T15:38:28.440 に答える