Array_sliceは、PHPの組み込みアレイ関数であり、配列内のいくつかの要素を傍受するのと同様に、アレイからサブアレイを抽出するために使用されます。関数の署名は次のとおりです。
array array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false)
$配列:インターセプトされる配列。
$ offset :インターセプトを開始する位置は、マイナス数をサポートして、配列の終わりから開始するカウントを示します。
$ length :インターセプトされた長さは、省略されていれば、配列の最後に傍受されます。
$ preserve_keys :元の配列のキー名を保持するかどうか、デフォルトはfalse 、つまりインデックスをリセットします。
大量のJSONデータを返すインターフェイスがあると仮定し、ページまたはチャンキング処理のデータの一部のみを取得したいと考えています。サンプルコードは次のとおりです。
<?php
$jsonData = file_get_contents('https://gitbox.net/api/data.json');
$arrayData = json_decode($jsonData, true);
if (json_last_error() !== JSON_ERROR_NONE) {
die('JSON デコードに失敗しました: ' . json_last_error_msg());
}
// 私たちが選ぶりたいと仮定します 11 到着 20 データ(つまり、インデックスからです10始める,選ぶ10ストリップ)
$partialData = array_slice($arrayData, 10, 10);
// 出力結果,見るのは簡単です
echo '<pre>';
print_r($partialData);
echo '</pre>';
?>
ここでは、最初にfile_get_contentsを使用して、 https://gitbox.net/api/data.jsonからjson文字列を取得し、次にarrayにデコードし、次にarray_sliceを使用して指定された間隔のデータを傍受します。
ページネーションディスプレイ:バックグラウンドインターフェイスは大量のデータを返し、現在のページに対応するデータのみがarray_sliceを介して送信または処理されます。
リソースの保存:一度にデータを処理しすぎないようにし、メモリの使用量を削減します。
ローカル処理:たとえば、ログ分析とデータエクスポートの場合、部分配列のみが処理されます。
json_decodeを使用する場合、2番目のパラメーターがtrueに設定され、オブジェクトの代わりに配列が取得されるようにし、 array_sliceを呼び出すのに便利になります。
配列キー名が重要な場合は、4番目のパラメーター$ preserve_keysをtrueに設定できます。
プログラムのクラッシュを引き起こすエラーを回避するために、処理前にJSONが正常にデコードされているかどうかを必ず確認してください。
<?php
$jsonUrl = 'https://gitbox.net/api/data.json';
$jsonStr = file_get_contents($jsonUrl);
$dataArray = json_decode($jsonStr, true);
if (json_last_error() !== JSON_ERROR_NONE) {
echo "デコードエラー: " . json_last_error_msg();
exit;
}
$page = 2;
$pageSize = 10;
$offset = ($page - 1) * $pageSize;
$pageData = array_slice($dataArray, $offset, $pageSize, true);
echo '<h2>第 ' . $page . ' ページデータ:</h2>';
echo '<pre>' . print_r($pageData, true) . '</pre>';
?>
この例では、ページング関数をシミュレートし、JSONアレイのデータの一部を柔軟に処理します。