(PECL ds >= 1.0.0)
Ds\Sequence::slice β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ΄-ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ΄-ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ
index ΠΈ Π΄Π»ΠΈΠ½ΠΎΠΉ length.
indexΠΠ½Π΄Π΅ΠΊΡ, Π·Π°Π΄Π°ΡΡΠΈΠΉ Π½Π°ΡΠ°Π»ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΡ Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. ΠΡΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ, ΡΠΎ ΠΎΡ ΠΊΠΎΠ½ΡΠ°.
lengthΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²Π·ΡΡΠΎ. ΠΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΌΠ΅Π½ΡΡΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²Π΅ΡΠ½ΡΡΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΅ΡΡΡ. ΠΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΎΡΡΡΠΈΡΠ°Π½Π½ΡΠΉ ΠΎΡ ΠΊΠΎΠ½ΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΊΠΎΠ½Π΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. ΠΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° Π½Π΅ Π·Π°Π΄Π°Π½Π°, ΡΠΎ Π±ΡΠ΄ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΎΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΠΎΠ΄-ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ds\Sequence::slice()
<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d", "e"]);
// ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ 2 Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°
print_r($sequence->slice(2));
// ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ 1 Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ 3
print_r($sequence->slice(1, 3));
// ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ 1 Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°
print_r($sequence->slice(1));
// ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ 2 Ρ ΠΊΠΎΠ½ΡΠ° Π΄ΠΎ Π½Π°ΡΠ°Π»Π°
print_r($sequence->slice(-2));
// ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ 1 ΠΎΡ 1 Ρ ΠΊΠΎΠ½ΡΠ°
print_r($sequence->slice(1, -1));
?>ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
Ds\Vector Object
(
[0] => c
[1] => d
[2] => e
)
Ds\Vector Object
(
[0] => b
[1] => c
[2] => d
)
Ds\Vector Object
(
[0] => b
[1] => c
[2] => d
[3] => e
)
Ds\Vector Object
(
[0] => d
[1] => e
)
Ds\Vector Object
(
[0] => b
[1] => c
[2] => d
)