10月23日上午PHP數組

正則表達式php

 1.替換正則表達式

$s = "hello5world";
$s = preg_replace("/\d/","#",$s);
echo $s;
//輸出結果爲hello#world,數字被替換成了#。
//第一個數字是被替換的內容,"/\d/"表示正則表達式的數字。
//第二個參數是要用什麼來替換。
//第三個參數是要操做的數組。

2.拆分數組

$s = "hello5world";
$attr = preg_split("/\d/",$s); //按照正則表達式拆分
var_dump($arr);
//第一個參數是按照什麼拆分,第二個參數是拆分哪一個字符串。

3.匹配安全

$s = "he8llo5wor6ld";
$arr = array();
preg_match("/\d/",$s,$arr); //匹配知足正則的第一個字符串,在這匹配出的是8(8)是字符串中的第一個數字。
preg_match_all("/\d/",$s,$arr); //匹配全部知足正則的字符串,匹配出的是全部的數字(八、五、6)。
//第一個參數是按照什麼匹配
//第二個參數是匹配的數組
//第三個參數是另外一個數組,也能夠是空的數組,匹配完之後的數組放在此數組中。

數組服務器

1.數組定義函數

$attr = array();//定義一個空的數組
$attr = array(1,2,3,4);//定義一個有值的數組

2.賦值定義post

$attr[0]="aa";
$attr[1]="bb";
echo $attr[1];

3.數組分類ui

(1)索引數組spa

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

(2)關聯數組指針

$attr = array("code"=>101,"name"=>"張三","sex"=>"男");//code=>101表示賦值.code能夠稱爲key,101稱爲name。
print_r($attr);
echo $attr["name"];

4.遍歷數組

(1)for循環遍歷,只能遍歷索引數組

$attr = array("aa","bb","cc","dd");

/*for($i = 0;$i<count($attr);$i++)
{
  echo $attr[$i]."<br>";
}

(2)foreach遍歷,關聯和索引均可以遍歷.

$attr = array("aa","bb","cc","dd");
foreach($attr as $v)
{
  echo $v."<br>";
}
//只能遍歷出值


foreach($attr as $k=>$v)
{
  echo $k."--".$v."<br>";
}
//能夠遍歷出key和value

$attr = array(1,2,3,4,5);
foreach($attr as $k=>$v)
{
  if($v == 3)
  {
    unset($attr[$k]);
//刪除一個元素或者刪除一個變量,不能直接unset($v),由於遍歷時是把數組裏面的數字3複製給$v的,刪除的是複製的,而不是數組裏面的。
  }
}
$attr = array_values($attr);//從新索引,刪除數組元素裏面的3之後,索引值變爲0,1,3,4.從新索引後變爲0,1,2,3。
var_dump($attr);
//在其它語言中,使用foreach遍歷數組裏面的元素時,不能在foreach裏面刪除或者添加元素。只有php裏面能夠。

(3)使用each()和list()結合遍歷

var_dump(each($attr));//取數組裏面當前指針指向的元素.

list($a,$b,$c,$d)=$attr;//寫在等號左邊的將數組裏面的元素交給一組變量,數組必須是索引數組。
echo $c;

list($k,$v) = each($attr);
echo $k;
echo $v;

while(list($k,$v) = each($attr));
{
    echo "{$k}--{$v}<br>";
}

(4)使用指針遍歷

var_dump(current($attr));//取當前指針指向的元素的值
key($attr);//取當前指針指向的元素的key
next($attr);//將指針向後調一個
prev($attr);//將指針向前調一個
end($attr);//將指針向指向最後
reset($attr);//將指針重置

var_dump(next($attr));
var_dump(next($attr));
var_dump(next($attr));
var_dump(next($attr));

while(next($attr))
{
    echo current($attr);
    echo key($attr);
}

do
{
    echo current($attr);
    echo key($attr);
}
while(next($attr))

預約義數組

1.$GLOBALS引用全局做用域中的全局變量

var_dump$GLOBALS()//$GLOBALS是一個數組,是系統自定義的,沒法修改的,必須大寫。表明全局變量的數組。

2.$_SERVER是服務器的信息

3.$_ENV表明環境變量

4.$_GET表明的是用戶用_GET方式傳遞的數據

<body>
    <form action="test.php" method="get">
       <input type="text" name="uid" />    
       <input type="text" name="pwd" /> 
     <input type="submit" value="提交" />   
    </form>
</body>
//輸入數據提交之後會顯示提交的數據。var_dump($_get)能夠獲取提交的數據。

5.$_POST表明的是用戶用post方式傳遞的數據

method的方式和獲取的方式要對應。var_dump($_POST)

6.$_REQUEST也能夠獲取用戶傳遞的數據。

$_REQUEST能夠取GET方式傳遞的數據,也能夠取POST方式傳遞的數據。可是通常不要用$_REQUEST,相對的不安全。

7.$_FILES;是關於表單提交文件的。

<form action="text.php" method="post" enctype="multipart/form-date">//提交文件時須要寫上enctype屬性,提交方式要用post

8.$_SESSION

  會話控制,保存用戶登陸信息的機制。若是登陸上一個頁面之後必定的時間沒有操做,刷新頁面後會要求從新登陸,這就是_SESSION的效果。它有一個固定的時間,事後登陸信息會清除。_SESSION存儲登陸信息存儲在服務器上。_SESSION的安全性會更好。

9.$_COOKIE

  會話控制,保存用戶登陸信息的機制。若是登陸上一個頁面之後必定的時間沒有操做,刷新頁面後不須要從新登陸,這就是_COOKIE的效果。_COOKIE存儲登陸信息存儲在硬盤上。_COOKIE的安全性不如_SESSION。

 其它經常使用函數

1.in_array( , );判斷某一個值是否是在這個數組裏面存在,括號裏面有兩個參數,第一個參數是是否存在的值,第二個參數是檢查的數組。

2.array_reverse();翻轉函數,括號裏面寫要翻轉的數組。

3.array_unique();刪除重複值,去重。

4.unset($attr[0]);刪除數組裏的某個值。

5.array_values();從新索引。通常和刪除一塊兒使用。

6.array_merge();合併數組,括號裏面填寫n個要合併的數組。

7.array_push();往數組裏面添加一個值,添加位置在末尾。

 數組例子

//取數組裏面的內容作下拉列表
方法1:
$attr = array(//定義一個數組,用二維數組。
    array("n001","漢族"),
    array("n002","回族"),
    array("n003","滿族"),
    array("n004","維吾爾族")
);
<select>
<option>全部</option>
<?php

foreach($attr as $v)
{
  echo "<option>{$v[1]}</option>";
}
?>
</select>

方法2:

$attr = array(//定義一個數組,用二維數組。
    array("n001","漢族"),
    array("n002","回族"),
    array("n003","滿族"),
    array("n004","維吾爾族")
);
echo "<select>";
echo "<option>全部的</option>";

foreach($attr as $v)
{
  echo "<option>{$v[1]}</option>";
}


echo "</select>";

例子2:二維數組遍歷到表格

$attr = array(
    array("code","name","民族","年齡"),
    array("001","張三","漢族","23"),
    array("002","李四","回族","34"),
    array("003","王五","維吾爾族","53"),
    array("004","宋六","壯族","26")
);
echo "<table border='1px'>";
for($i=0;$i<count($attr);$i++)
{
    echo "<tr>";
    for($j=0;$j<count($attr[$i]);$j++)
    {
        echo "<td>".$attr[$i][$j]."</td>";
    }
    echo "</tr>";
}
echo "</table>";
相關文章
相關標籤/搜索