### 數組結構打印
print_r();
### 創建一個隨機數組
~~~
//第一個,第二個是范圍,第三個是步長
range(1,10,3);
range('a','z',1); //26個字母
~~~
### 數組輸出
* for
關聯數組無法使用for循環,只能用foreach
* foreach
~~~
for ($i=0; $i <count($arr) ; $i++) {
# code...
}
foreach ($arr as $key => $value) {
}
~~~
### each()
**作用:取得當前數組,打包成一個新的數組**
返回數組當前的鍵/值,并對數組指針向前移動一位
~~~
$arr=array('李彥宏'=>1111,'馬云'=>2222,'樟茶鴨'=>3333);
//把數組的元素拿出來,包裝成一個4個元素的新數組
each($arr);
//每執行一次,指針向后移動一次,指針?馬云
$b=each($arr);
echo "<pre>";
print_r($b);
~~~
返回
~~~
Array
(
[1] => 1111
[value] => 1111
[0] => 李彥宏
[key] => 李彥宏
)
~~~
循環打印出來
~~~
while(!!$a=each($arr)){
echo $a['key'].'----'.$a['value'];
}
~~~
### list()函數
list只能認識索引數組
把數組中的值,分別賦給變量
list($a,$b)=each($arr);
~~~
$arr1=array(2,4,6,89);
list($a,$b)=$arr1;
echo $a;
~~~
取得each里面的索引值,過濾掉關聯值
~~~
$arr=array('李彥宏'=>1111,'馬云'=>2222,'樟茶鴨'=>3333);
list($a,$b)=each($arr);
echo $a;
echo $b;
~~~
### reset()
把數組的指針指向第一單元
在each()里面,可以重復取值
### array_unique()
移除重復數組的值,不會改變原數組
### array_flip()
交換數組中的鍵和值,不會改變原數組
### 數組排序sort
按數字排序,數字大小
* sort($arr,SORT_STRING);
按字符串排序,看第一個字母大小
* sort($arr,SORT_NUMERIC);
### asort
對數組排序,保持原始索引關系
### ksort
對數組進行鍵名排序,比較鍵名的大小,即key-sort
### rsort
從大到小排序
~~~
rsort
krsort
arsort
~~~
### 數組隨機排序
~~~
//讓內容隨機出現
$arr=array(4,6,8,5,4,3,77);
$arr1=shuffle($arr);
for ($i=0; $i <3 ; $i++) {
# code...
}
~~~
### 數組逆序排列
array_reverse();
### 數組插入元素
* 末尾添加
array_push()
* 開頭添加
array_unshift()
`array_push($arr,'aaa')`
### 刪除元素
* 結尾刪除
array_pop()
* 開頭刪除
array_shift()
### 隨機取一個數組小標
array_rand();
~~~
//隨機一個
$a=array_rand($arr,1);
//隨機2個
$b=array_rand($arr,2);
$b[0];
$b[1];
~~~
### 數組指針操作
#### current($arr)
獲取指針當前元素,指針不變
each()指針會下移一步
#### next($arr)
指針下一個元素
#### prev()
上一個元素
#### sizeof()
等同于count
#### array_count_values()
統計數組中每個值出現的次數,返回新的數組
#### extract()
把下標轉為變量,同時把變量的值即為數組的值
~~~
$arr=array('a'=>'bac','f'=>'第二個');
extract($arr);
echo $f; //$f='第二個'
~~~