国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP基礎(chǔ)之?dāng)?shù)據(jù)類型5——數(shù)組(Array)

瀏覽:3日期:2022-09-14 13:01:31

PHP 中的數(shù)組實(shí)際上是一個(gè)有序映射。映射是一種把 values 關(guān)聯(lián)到 keys 的類型。此類型在很多方面做了優(yōu)化,因此可以把它當(dāng)成真正的數(shù)組,或列表(向量),散列表(是映射的一種實(shí)現(xiàn)),字典,集合,棧,隊(duì)列以及更多可能性。由于數(shù)組元素的值也可以是另一個(gè)數(shù)組,樹形結(jié)構(gòu)和多維數(shù)組也是允許的。

解釋這些結(jié)構(gòu)超出了本手冊(cè)的范圍,但對(duì)于每種結(jié)構(gòu)至少會(huì)提供一個(gè)例子。要得到這些結(jié)構(gòu)的更多信息,建議參考有關(guān)此廣闊主題的其它著作。

語(yǔ)法定義數(shù)組 array()

可以用 array() 語(yǔ)言結(jié)構(gòu)來(lái)新建一個(gè)數(shù)組。它接受任意數(shù)量用逗號(hào)分隔的 鍵(key) => 值(value)對(duì)。

array( key => value, ...)// 鍵(key)可是是一個(gè)整數(shù) integer 或字符串 string// 值(value)可以是任意類型的值

最后一個(gè)數(shù)組單元之后的逗號(hào)可以省略。通常用于單行數(shù)組定義中,例如常用 array(1, 2) 而不是 array(1, 2, )。對(duì)多行數(shù)組定義通常保留最后一個(gè)逗號(hào),這樣要添加一個(gè)新單元時(shí)更方便。

自 5.4 起可以使用短數(shù)組定義語(yǔ)法,用 [] 替代 array()。

Example #1 一個(gè)簡(jiǎn)單數(shù)組

<?php

$array = array(

???'foo' => 'bar',

???'bar' => 'foo',

);

// 自 PHP 5.4 起

$array = [

???'foo' => 'bar',

???'bar' => 'foo',

];

?>

key 可以是 integer 或者 string。value 可以是任意類型。

此外 key 會(huì)有如下的強(qiáng)制轉(zhuǎn)換:

包含有合法整型值的字符串會(huì)被轉(zhuǎn)換為整型。例如鍵名 '8' 實(shí)際會(huì)被儲(chǔ)存為 8。但是 '08' 則不會(huì)強(qiáng)制轉(zhuǎn)換,因?yàn)槠洳皇且粋€(gè)合法的十進(jìn)制數(shù)值。

浮點(diǎn)數(shù)也會(huì)被轉(zhuǎn)換為整型,意味著其小數(shù)部分會(huì)被舍去。例如鍵名 8.7 實(shí)際會(huì)被儲(chǔ)存為 8。

布爾值也會(huì)被轉(zhuǎn)換成整型。即鍵名 true 實(shí)際會(huì)被儲(chǔ)存為 1 而鍵名 false 會(huì)被儲(chǔ)存為 0。

Null 會(huì)被轉(zhuǎn)換為空字符串,即鍵名 null 實(shí)際會(huì)被儲(chǔ)存為 ''。

數(shù)組和對(duì)象不能被用為鍵名。堅(jiān)持這么做會(huì)導(dǎo)致警告:Illegal offset type。

如果在數(shù)組定義中多個(gè)單元都使用了同一個(gè)鍵名,則只使用了最后一個(gè),之前的都被覆蓋了。

Example #2 類型強(qiáng)制與覆蓋示例

<?php

$array = array(

???1 ???=> 'a',

???'1' ?=> 'b',

???1.5 ?=> 'c',

???true => 'd',

);

var_dump($array);

?>

以上例程會(huì)輸出:

array(1) {[1]=>string(1) 'd'}

上例中所有的鍵名都被強(qiáng)制轉(zhuǎn)換為 1,則每一個(gè)新單元都會(huì)覆蓋前一個(gè)的值,最后剩下的只有一個(gè) 'd'。

PHP 數(shù)組可以同時(shí)含有 integer 和 string 類型的鍵名,因?yàn)?PHP 實(shí)際并不區(qū)分索引數(shù)組和關(guān)聯(lián)數(shù)組。

如果對(duì)給出的值沒(méi)有指定鍵名,則取當(dāng)前最大的整數(shù)索引值,而新的鍵名將是該值加一。如果指定的鍵名已經(jīng)有了值,則該值會(huì)被覆蓋。

Example #3 混合 integer 和 string 鍵名

<?php

$array = array(

???'foo' => 'bar',

???'bar' => 'foo',

???100 ??=> -100,

???-100 ?=> 100,

);

var_dump($array);

?>

以上例程會(huì)輸出:

array(4) {['foo']=>string(3) 'bar'['bar']=>string(3) 'foo'[100]=>int(-100)[-100]=>int(100)}

key 為可選項(xiàng)。如果未指定,PHP 將自動(dòng)使用之前用過(guò)的最大 integer 鍵名加上 1 作為新的鍵名。

Example #4 沒(méi)有鍵名的索引數(shù)組

<?php

$array = array('foo', 'bar', 'hallo', 'world');

var_dump($array);

?>

以上例程會(huì)輸出:

array(4) {[0]=>string(3) 'foo'[1]=>string(3) 'bar'[2]=>string(5) 'hallo'[3]=>string(5) 'world'}

還可以只對(duì)某些單元指定鍵名而對(duì)其它的空置:

Example #5 僅對(duì)部分單元指定鍵名

<?php

$array = array(

????????'a',

????????'b',

???6 => 'c',

????????'d',

);

var_dump($array);

?>

以上例程會(huì)輸出:

array(4) {[0]=>string(1) 'a'[1]=>string(1) 'b'[6]=>string(1) 'c'[7]=>string(1) 'd'}

可以看到最后一個(gè)值 'd' 被自動(dòng)賦予了鍵名 7。這是由于之前最大的整數(shù)鍵名是 6。

用方括號(hào)語(yǔ)法訪問(wèn)數(shù)組單元

數(shù)組單元可以通過(guò) array[key] 語(yǔ)法來(lái)訪問(wèn)。

Example #6 訪問(wèn)數(shù)組單元

<?php

$array = array(

???'foo' => 'bar',

???42 ???=> 24,

???'multi' => array(

????????'dimensional' => array(

????????????'array' => 'foo'

????????)

???)

);

var_dump($array['foo']);

var_dump($array[42]);

var_dump($array['multi']['dimensional']['array']);

?>

以上例程會(huì)輸出:

string(3) 'bar'int(24)string(3) 'foo'

Note:

方括號(hào)和花括號(hào)可以互換使用來(lái)訪問(wèn)數(shù)組單元(例如 $array[42] 和 $array{42} 在上例中效果相同)。

自 PHP 5.4 起可以用數(shù)組間接引用函數(shù)或方法調(diào)用的結(jié)果。之前只能通過(guò)一個(gè)臨時(shí)變量。

自 PHP 5.5 起可以用數(shù)組間接引用一個(gè)數(shù)組原型。

Example #7 數(shù)組間接引用

<?php

function getArray() {

???return array(1, 2, 3);

}

// on PHP 5.4

$secondElement = getArray()[1];

// previously

$tmp = getArray();

$secondElement = $tmp[1];

// or

list(, $secondElement) = getArray();

?>

Note:

試圖訪問(wèn)一個(gè)未定義的數(shù)組鍵名與訪問(wèn)任何未定義變量一樣:會(huì)導(dǎo)致 E_NOTICE 級(jí)別錯(cuò)誤信息,其結(jié)果為 NULL。

用方括號(hào)的語(yǔ)法新建/修改

可以通過(guò)明示地設(shè)定其中的值來(lái)修改一個(gè)已有數(shù)組。

這是通過(guò)在方括號(hào)內(nèi)指定鍵名來(lái)給數(shù)組賦值實(shí)現(xiàn)的。也可以省略鍵名,在這種情況下給變量名加上一對(duì)空的方括號(hào)([])。

$arr[key] = value;$arr[] = value;// key 可以是 integer 或 string// value 可以是任意類型的值

如果 $arr 還不存在,將會(huì)新建一個(gè),這也是另一種新建數(shù)組的方法。不過(guò)并不鼓勵(lì)這樣做,因?yàn)槿绻?$arr 已經(jīng)包含有值(例如來(lái)自請(qǐng)求變量的 string)則此值會(huì)保留而 [] 實(shí)際上代表著字符串訪問(wèn)運(yùn)算符。初始化變量的最好方式是直接給其賦值。。

要修改某個(gè)值,通過(guò)其鍵名給該單元賦一個(gè)新值。要?jiǎng)h除某鍵值對(duì),對(duì)其調(diào)用 unset() 函數(shù)。

<?php

$arr = array(5 => 1, 12 => 2);

$arr[] = 56; ???// This is the same as $arr[13] = 56;

???????????????// at this point of the script

$arr['x'] = 42; // This adds a new element to

???????????????// the array with key 'x'

unset($arr[5]); // This removes the element from the array

unset($arr); ???// This deletes the whole array

?>

Note:

如上所述,如果給出方括號(hào)但沒(méi)有指定鍵名,則取當(dāng)前最大整數(shù)索引值,新的鍵名將是該值加上 1(但是最小為 0)。如果當(dāng)前還沒(méi)有整數(shù)索引,則鍵名將為 0。

注意這里所使用的最大整數(shù)鍵名不一定當(dāng)前就在數(shù)組中。它只要在上次數(shù)組重新生成索引后曾經(jīng)存在過(guò)就行了。以下面的例子來(lái)說(shuō)明:

<?php

// 創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)組

$array = array(1, 2, 3, 4, 5);

print_r($array);

// 現(xiàn)在刪除其中的所有元素,但保持?jǐn)?shù)組本身不變:

foreach ($array as $i => $value) {

???unset($array[$i]);

}

print_r($array);

// 添加一個(gè)單元(注意新的鍵名是 5,而不是你可能以為的 0)

$array[] = 6;

print_r($array);

// 重新索引:

$array = array_values($array);

$array[] = 7;

print_r($array);

?>

以上例程會(huì)輸出:

Array([0] => 1[1] => 2[2] => 3[3] => 4[4] => 5)Array()Array([5] => 6)Array([0] => 6[1] => 7)

實(shí)用函數(shù)

有很多操作數(shù)組的函數(shù),參見數(shù)組函數(shù)一節(jié)。

Note:

unset() 函數(shù)允許刪除數(shù)組中的某個(gè)鍵。但要注意數(shù)組將不會(huì)重建索引。如果需要?jiǎng)h除后重建索引,可以用 array_values() 函數(shù)。

<?php

$a = array(1 => ’one’, 2 => ’two’, 3 => ’three’);

unset($a[2]);

/* will produce an array that would have been defined as

??$a = array(1 => ’one’, 3 => ’three’);

??and NOT

??$a = array(1 => ’one’, 2 =>’three’);

*/

$b = array_values($a);

// Now $b is array(0 => ’one’, 1 =>’three’)

?>

foreach 控制結(jié)構(gòu)是專門用于數(shù)組的。它提供了一個(gè)簡(jiǎn)單的方法來(lái)遍歷數(shù)組。

數(shù)組做什么和不做什么為什么 $foo[bar] 錯(cuò)了?

應(yīng)該始終在用字符串表示的數(shù)組索引上加上引號(hào)。例如用 $foo[’bar’] 而不是 $foo[bar]。但是為什么呢?可能在老的腳本中見過(guò)如下語(yǔ)法:

<?php

$foo[bar] = ’enemy’;

echo $foo[bar];

// etc

?>

這樣是錯(cuò)的,但可以正常運(yùn)行。那么為什么錯(cuò)了呢?原因是此代碼中有一個(gè)未定義的常量(bar)而不是字符串(’bar’-注意引號(hào)),而 PHP 可能會(huì)在以后定義此常量,不幸的是你的代碼中有同樣的名字。它能運(yùn)行,是因?yàn)?PHP 自動(dòng)將裸字符串(沒(méi)有引號(hào)的字符串且不對(duì)應(yīng)于任何已知符號(hào))轉(zhuǎn)換成一個(gè)其值為該裸字符串的正常字符串。例如,如果沒(méi)有常量定義為 bar,PHP 將把它替代為 ’bar’ 并使用之。

Note: 這并不意味著總是給鍵名加上引號(hào)。用不著給鍵名為常量或變量的加上引號(hào),否則會(huì)使 PHP 不能解析它們。

<?php

error_reporting(E_ALL);

ini_set(’display_errors’, true);

ini_set(’html_errors’, false);

// Simple array:

$array = array(1, 2);

$count = count($array);

for ($i = 0; $i < $count; $i++) {

???echo 'nChecking $i: n';

???echo 'Bad: ' . $array[’$i’] . 'n';

???echo 'Good: ' . $array[$i] . 'n';

???echo 'Bad: {$array[’$i’]}n';

???echo 'Good: {$array[$i]}n';

}

?>

以上例程會(huì)輸出:

Checking 0:Notice: Undefined index: ?$i in /path/to/script.html on line 9Bad:Good: 1Notice: Undefined index: ?$i in /path/to/script.html on line 11Bad:Good: 1

Checking 1:Notice: Undefined index: ?$i in /path/to/script.html on line 9Bad:Good: 2Notice: Undefined index: ?$i in /path/to/script.html on line 11Bad:Good: 2

演示此行為的更多例子:

<?php

// Show all errors

error_reporting(E_ALL);

$arr = array(’fruit’ => ’apple’, ’veggie’ => ’carrot’);

// Correct

print $arr[’fruit’]; ?// apple

print $arr[’veggie’]; // carrot

// Incorrect. ?This works but also throws a PHP error of level E_NOTICE because

// of an undefined constant named fruit

//

// Notice: Use of undefined constant fruit - assumed ’fruit’ in...

print $arr[fruit]; ???// apple

// This defines a constant to demonstrate what’s going on. ?The value ’veggie’

// is assigned to a constant named fruit.

define(’fruit’, ’veggie’);

// Notice the difference now

print $arr[’fruit’]; ?// apple

print $arr[fruit]; ???// carrot

// The following is okay, as it’s inside a string. Constants are not looked for

// within strings, so no E_NOTICE occurs here

print 'Hello $arr[fruit]'; ?????// Hello apple

// With one exception: braces surrounding arrays within strings allows constants

// to be interpreted

print 'Hello {$arr[fruit]}'; ???// Hello carrot

print 'Hello {$arr[’fruit’]}'; ?// Hello apple

// This will not work, and will result in a parse error, such as:

// Parse error: parse error, expecting T_STRING’ or T_VARIABLE’ or T_NUM_STRING’

// This of course applies to using superglobals in strings as well

print 'Hello $arr[’fruit’]';

print 'Hello $_GET[’foo’]';

// Concatenation is another option

print 'Hello ' . $arr[’fruit’]; // Hello apple

?>

當(dāng)打開 error_reporting 來(lái)顯示 E_NOTICE 級(jí)別的錯(cuò)誤(將其設(shè)為 E_ALL)時(shí)將看到這些錯(cuò)誤。默認(rèn)情況下 error_reporting 被關(guān)閉不顯示這些。

和在語(yǔ)法一節(jié)中規(guī)定的一樣,在方括號(hào)(“[”和“]”)之間必須有一個(gè)表達(dá)式。這意味著可以這樣寫:

<?php

echo $arr[somefunc($bar)];

?>

這是一個(gè)用函數(shù)返回值作為數(shù)組索引的例子。PHP 也可以用已知常量,可能之前已經(jīng)見過(guò):

<?php

$error_descriptions[E_ERROR] ??= 'A fatal error has occured';

$error_descriptions[E_WARNING] = 'PHP issued a warning';

$error_descriptions[E_NOTICE] ?= 'This is just an informal notice';

?>

注意 E_ERROR 也是個(gè)合法的標(biāo)識(shí)符,就和第一個(gè)例子中的 bar 一樣。但是上一個(gè)例子實(shí)際上和如下寫法是一樣的:

<?php

$error_descriptions[1] = 'A fatal error has occured';

$error_descriptions[2] = 'PHP issued a warning';

$error_descriptions[8] = 'This is just an informal notice';

?>

因?yàn)?E_ERROR 等于 1,等等。

那么為什么這樣做不好?

也許有一天,PHP 開發(fā)小組可能會(huì)想新增一個(gè)常量或者關(guān)鍵字,或者用戶可能希望以后在自己的程序中引入新的常量,那就有麻煩了。例如已經(jīng)不能這樣用 empty 和 default 這兩個(gè)詞了,因?yàn)樗麄兪潜A糇帧?/p>

Note: 重申一次,在雙引號(hào)字符串中,不給索引加上引號(hào)是合法的因此 '$foo[bar]' 是合法的(“合法”的原文為 valid。在實(shí)際測(cè)試中,這么做確實(shí)可以訪問(wèn)數(shù)組的該元素,但是會(huì)報(bào)一個(gè)常量未定義的 notice。無(wú)論如何,強(qiáng)烈建議不要使用 $foo[bar]這樣的寫法,而要使用 $foo[’bar’] 來(lái)訪問(wèn)數(shù)組中元素。--haohappy 注)。至于為什么參見以上的例子和字符串中的變量解析中的解釋。

轉(zhuǎn)換為數(shù)組

對(duì)于任意 integer,float,string,boolean 和 resource 類型,如果將一個(gè)值轉(zhuǎn)換為數(shù)組,將得到一個(gè)僅有一個(gè)元素的數(shù)組,其下標(biāo)為 0,該元素即為此標(biāo)量的值。換句話說(shuō),(array)$scalarValue 與 array($scalarValue) 完全一樣。

如果一個(gè) object 類型轉(zhuǎn)換為 array,則結(jié)果為一個(gè)數(shù)組,其單元為該對(duì)象的屬性。鍵名將為成員變量名,不過(guò)有幾點(diǎn)例外:整數(shù)屬性不可訪問(wèn);私有變量前會(huì)加上類名作前綴;保護(hù)變量前會(huì)加上一個(gè) ’*’ 做前綴。這些前綴的前后都各有一個(gè) NULL 字符。這會(huì)導(dǎo)致一些不可預(yù)知的行為:

<?php

class A {

???private $A; // This will become ’0A0A’

}

class B extends A {

???private $A; // This will become ’0B0A’

???public $AA; // This will become ’AA’

}

var_dump((array) new B());

?>

上例會(huì)有兩個(gè)鍵名為 ’AA’,不過(guò)其中一個(gè)實(shí)際上是 ’0A0A’。

將 NULL 轉(zhuǎn)換為 array 會(huì)得到一個(gè)空的數(shù)組。

比較

可以用 array_diff() 和數(shù)組運(yùn)算符來(lái)比較數(shù)組。

示例

PHP 中的數(shù)組類型有非常多的用途。以下是一些示例:

<?php

// This:

$a = array( ’color’ => ’red’,

???????????’taste’ => ’sweet’,

???????????’shape’ => ’round’,

???????????’name’ ?=> ’apple’,

???????????4 ???????// key will be 0

?????????);

$b = array(’a’, ’b’, ’c’);

// . . .is completely equivalent with this:

$a = array();

$a[’color’] = ’red’;

$a[’taste’] = ’sweet’;

$a[’shape’] = ’round’;

$a[’name’] ?= ’apple’;

$a[] ???????= 4; ???????// key will be 0

$b = array();

$b[] = ’a’;

$b[] = ’b’;

$b[] = ’c’;

// After the above code is executed, $a will be the array

// array(’color’ => ’red’, ’taste’ => ’sweet’, ’shape’ => ’round’,

// ’name’ => ’apple’, 0 => 4), and $b will be the array

// array(0 => ’a’, 1 => ’b’, 2 => ’c’), or simply array(’a’, ’b’, ’c’).

?>

Example #8 使用 array()

<?php

// Array as (property-)map

$map = array( ’version’ ???=> 4,

?????????????’OS’ ????????=> ’Linux’,

?????????????’lang’ ??????=> ’english’,

?????????????’short_tags’ => true

???????????);

// strictly numerical keys

$array = array( 7,

???????????????8,

???????????????0,

???????????????156,

???????????????-10

?????????????);

// this is the same as array(0 => 7, 1 => 8, ...)

$switching = array( ????????10, // key = 0

???????????????????5 ???=> ?6,

???????????????????3 ???=> ?7,

???????????????????’a’ ?=> ?4,

???????????????????????????11, // key = 6 (maximum of integer-indices was 5)

???????????????????’8’ ?=> ?2, // key = 8 (integer!)

???????????????????’02’ => 77, // key = ’02’

???????????????????0 ???=> 12 ?// the value 10 will be overwritten by 12

?????????????????);

// empty array

$empty = array();

?>

Example #9 集合

<?php

$colors = array(’red’, ’blue’, ’green’, ’yellow’);

foreach ($colors as $color) {

???echo 'Do you like $color?n';

}

?>

以上例程會(huì)輸出:

Do you like red?Do you like blue?Do you like green?Do you like yellow?

直接改變數(shù)組的值自 PHP 5 起可以通過(guò)引用傳遞來(lái)做到。之前的版本需要需要采取變通的方法:

Example #10 在循環(huán)中改變單元

<?php

// PHP 5

foreach ($colors as &$color) {

???$color = strtoupper($color);

}

unset($color); /* ensure that following writes to

$color will not modify the last array element */

// Workaround for older versions

foreach ($colors as $key => $color) {

???$colors[$key] = strtoupper($color);

}

print_r($colors);

?>

以上例程會(huì)輸出:

Array([0] => RED[1] => BLUE[2] => GREEN[3] => YELLOW)

本例生成一個(gè)下標(biāo)從 1 開始的數(shù)組。

Example #11 下標(biāo)從 1 開始的數(shù)組

<?php

$firstquarter ?= array(1 => ’January’, ’February’, ’March’);

print_r($firstquarter);

?>

以上例程會(huì)輸出:

Array([1] => ’January’[2] => ’February’[3] => ’March’)

Example #12 填充數(shù)組

<?php

// fill an array with all items from a directory

$handle = opendir(’.’);

while (false !== ($file = readdir($handle))) {

???$files[] = $file;

}

closedir($handle);

?>

數(shù)組是有序的。也可以使用不同的排序函數(shù)來(lái)改變順序。更多信息參見數(shù)組函數(shù)??梢杂?count() 函數(shù)來(lái)數(shù)出數(shù)組中元素的個(gè)數(shù)。

Example #13 數(shù)組排序

<?php

sort($files);

print_r($files);

?>

因?yàn)閿?shù)組中的值可以為任意值,也可是另一個(gè)數(shù)組。這樣可以產(chǎn)生遞歸或多維數(shù)組。

Example #14 遞歸和多維數(shù)組

<?php

$fruits = array ( 'fruits' ?=> array ( 'a' => 'orange',

??????????????????????????????????????'b' => 'banana',

??????????????????????????????????????'c' => 'apple'

????????????????????????????????????),

?????????????????'numbers' => array ( 1,

??????????????????????????????????????2,

??????????????????????????????????????3,

??????????????????????????????????????4,

??????????????????????????????????????5,

??????????????????????????????????????6

????????????????????????????????????),

?????????????????'holes' ??=> array ( ?????'first',

??????????????????????????????????????5 => 'second',

???????????????????????????????????????????'third'

????????????????????????????????????)

???????????????);

// Some examples to address values in the array above

echo $fruits['holes'][5]; ???// prints 'second'

echo $fruits['fruits']['a']; // prints 'orange'

unset($fruits['holes'][0]); ?// remove 'first'

// Create a new multi-dimensional array

$juices['apple']['green'] = 'good';

?>

數(shù)組(Array) 的賦值總是會(huì)涉及到值的拷貝。使用引用運(yùn)算符通過(guò)引用來(lái)拷貝數(shù)組。

<?php

$arr1 = array(2, 3);

$arr2 = $arr1;

$arr2[] = 4; // $arr2 is changed,

????????????// $arr1 is still array(2, 3)

$arr3 = &$arr1;

$arr3[] = 4; // now $arr1 and $arr3 are the same

?>

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 免费一级特黄a | 亚洲欧美国产精品久久久 | 日韩a无吗一区二区三区 | 黄黄的网站在线观看 | 日本加勒比在线观看 | 台湾精品视频在线观看 | 香港aa三级久久三级老师 | 欧美激情精品久久久久 | 日本二级毛片免费 | 亚洲在线国产 | 午夜不卡av免费 | 国产精品1区2区 | 亚洲aⅴ| 亚洲韩精品欧美一区二区三区 | 国产一级做a爰片在线看 | 亚洲精品二区中文字幕 | 三级精品| 欧美黄色一级视屏 | 国产人成久久久精品 | 久久99视频 | 免费一级肉体全黄毛片 | 黄色网址网站在线观看 | 欧美人在线 | 国产毛片基地 | 精品国产一区二区三区不卡蜜臂 | 91精品国产乱码久久久久久 | 午夜免费片在线观看不卡 | 成人免费的性色视频 | 免费一区二区三区在线视频 | 粉嫩jk制服美女啪啪 | 美女毛片免费看 | 久久免费精彩视频 | 在线精品日韩一区二区三区 | 国产精品久久久久久久专区 | 国产亚洲精彩视频 | 久久久久久国产视频 | 农村寡妇野外情一级毛片 | 怡红院在线观看视频 | 亚洲国产精品第一区二区三区 | 欧洲97色综合成人网 | 欧美精品久久天天躁 |