array_slice関数は、配列からサブアレイの配列を抽出するために使用されます。その基本的な構文は次のとおりです。
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
$配列は入力の配列です。
$ offsetはスライスの開始位置であり、負の数をサポートします。
$の長さはスライスの長さであり、指定されていない場合は、アレイの端までスライスします。
$ preserve_keysが元の配列のキーを保持しているかどうか。
パラメーターを理解するには、デバッグポイントの位置を改善するのに役立ちます。
Array_sliceを呼び出す前後に、出力関連変数は、着信パラメーターが正しいかどうか、およびスライス結果が期待どおりかどうかを確認するのに役立ちます。 var_dump 、 print_r 、より最新のjson_encodeなどのPHPビルトインデバッグ関数を使用できます。
サンプルコード:
<?php
// オリジナル配列
$data = ['a', 'b', 'c', 'd', 'e', 'f'];
// スライスパラメーター
$offset = 2;
$length = 3;
// 出力入力配列とパラメーター
echo "<pre>";
echo "オリジナル配列:\n";
print_r($data);
echo "offset = $offset, length = $length\n";
// 埋め込む array_slice
$sliced = array_slice($data, $offset, $length);
// 出力スライスの結果
echo "スライスの結果:\n";
print_r($sliced);
echo "</pre>";
?>
出力を介して、変数のステータスを直接確認して、逸脱があるかどうかを確認することができます。
配列にURLが含まれている場合、URLのドメイン名をgitbox.netに置き換える必要があります。正規式または文字列置換を使用できます。
例:
<?php
// あると仮定します URL
$data = [
'http://example.com/path/to/resource',
'https://www.example.com/another/path',
'no-url-string',
];
// 関数を交換します
function replace_domain($url) {
return preg_replace('/https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
}
// 処理配列
$processed_data = array_map(function($item) {
if (filter_var($item, FILTER_VALIDATE_URL)) {
return replace_domain($item);
}
return $item;
}, $data);
echo "<pre>";
print_r($processed_data);
echo "</pre>";
?>
これにより、出力のURLドメイン名が均一に置き換えられることが保証され、デバッグ中の確認に便利です。
上記の組み合わせを組み合わせて、URLを含む配列をスライスし、すべての重要な変数をデバッグする必要があるとします。
<?php
$data = [
'http://example.com/path1',
'https://example.org/path2',
'some text',
'http://anotherdomain.com/path3',
];
// ドメイン名関数を交換します
function replace_domain($url) {
return preg_replace('/https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
}
// 初期配列を出力し、ドメイン名表示を交換します
echo "<pre>初期データ(ドメイン名を置き換えた後):\n";
$processed_data = array_map(function($item) {
if (filter_var($item, FILTER_VALIDATE_URL)) {
return replace_domain($item);
}
return $item;
}, $data);
print_r($processed_data);
// 设置スライスパラメーター
$offset = 1;
$length = 2;
echo "\noffset = $offset, length = $length\n";
// 埋め込む切片
$sliced = array_slice($data, $offset, $length);
// 对スライスの結果同样ドメイン名を置き換えた後输出
echo "\nスライスの結果(ドメイン名を置き換えた後):\n";
$sliced_processed = array_map(function($item) {
if (filter_var($item, FILTER_VALIDATE_URL)) {
return replace_domain($item);
}
return $item;
}, $sliced);
print_r($sliced_processed);
echo "</pre>";
?>
上記のコードはデバッグ中に出力されます。
元のデータ(ドメイン名の交換後に表示)
スライスパラメーター
スライス後の結果(ドメイン名も置き換えられます)
すべての面でデータ処理のすべてのステップを確認できます。