導航:首頁 > 編程語言 > php數組編程

php數組編程

發布時間:2025-03-25 22:28:07

『壹』 php中foreach函數用法

在PHP編程語言中,foreach是一種循環結構,用於遍歷數組中的元素。foreach的基本語法為:foreach(被foreach的對象(一般是數組)as 內容) { },例如:$x = array(1,2,3,4,5),然後使用foreach循環,代碼如下:

foreach ($x as $y) { //這里的y依次為1,2,3,4,5}

這里,$y變數將依次代表數組中的每個元素。在每次循環中,$y的值都會更新為下一個數組元素的值。

除了基本形式,foreach還可以使用索引變數,即foreach(被foreach的對象(一般是數組)as index => 內容) { },例如:$x = array(1,2,3,4,5),然後使用foreach循環,代碼如下:

foreach ($x as $index => $y) { //這里的y依次為1,2,3,4,5, $index依次為0,1,2,3,4}

這樣,$y將代表數組中的每個元素,而$index將代表該元素在數組中的索引位置。通過這種方式,可以同時訪問數組中的值及其索引。

使用foreach循環遍歷數組,可以簡化代碼,提高程序的可讀性和可維護性。同時,這種結構在處理大量數據時也能提供更高的效率。

需要注意的是,foreach僅適用於數組類型,對於其他類型的數據結構,如對象,可能需要使用其他循環結構。

總之,foreach是一種強大且靈活的循環工具,在PHP編程中廣泛使用,特別是在需要處理數組時。

示例代碼如下:

php

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

foreach ($x as $y) {

//這里的y依次為1,2,3,4,5

}

foreach ($x as $index => $y) {

//這里的y依次為1,2,3,4,5, $index依次為0,1,2,3,4

}

以上代碼展示了foreach的基本用法及其擴展形式。

『貳』 用php寫一個數組包括5行數據,數組的格式是:學號,姓名,性別,年齡,班級;將數組的內容寫入到stu.csv中

源代碼如下:
<html>
<head>
<title>打開CSV文件</title>
</head>
<p>
<center>
<?php
$t_array=array(
array("1","張三","男","21","0921212"),
array("2","李四","女","20","0921212"),
array("3","王五","女","21","0921212"),
array("4","小六","男","22","0921212"),
array("5","田七","女","20","0921212")
);
$handle=fopen("html/stu.csv","w");
foreach ($stu as $line)
{fputcsv($handle,$line);}
fclose($handle);
echo"<table border=1><tr><td>學號</td><td>姓名</td><td>性別</td><td>年齡</td><td>班級</td></tr>";
while (list($key,$value)=each($t_array))
{
list($XH,$XM,$XB,$NL,$BJ)=$value;
echo "<tr><td>$XH</td><td>$XM</td><td>$XB</td><td>$NL</td><td>$BJ</td></tr>";
}
echo"</table>";
?>
</p>
</center>
</body>
</html>
,剩下的就是你自己建立一個CSV文件,把對應的內容填寫完整就行了,記得把內容換一下,不要照抄了啊

『叄』 PHP處理數組常用的幾個函數

一、數組操作的基本函數
數組的鍵名和值
array_values($arr); 獲得數組的值
array_keys($arr); 獲得數組的鍵名
array_flip($arr); 數組中的值與鍵名互換(如果有重復前面的會被後面的覆蓋)
in_array("apple",$arr); 在數組中檢索apple
array_search("apple",$arr); 在數組中檢索apple ,如果存在返回鍵名
array_key_exists("apple",$arr); 檢索給定的鍵名是否存在數組中
isset($arr[apple]): 檢索給定的鍵名是否存在數組中
數組的內部指針
current($arr); 返回數組中的當前單元
pos($arr); 返回數組中的當前單元
key($arr); 返回數組中當前單元的鍵名
prev($arr); 將數組中的內部指針倒回一位
next($arr); 將數組中的內部指針向前移動一位
end($arr); 將數組中的內部指針指向最後一個單元
reset($arr; 將數組中的內部指針指向第一個單元
each($arr); 將返回數組當前元素的一個鍵名/值的構造數組,並使數組指針向前移動一位
list($key,$value)=each($arr); 獲得數組當前元素的鍵名和值
數組和變數之間的轉換
extract($arr);用於把數組中的元素轉換成變數導入到當前文件中,鍵名當作變數名,值作為變數值
註:(第二個參數很重要,可以看手冊使用)使用方法 echo $a;
compact(var1,var2,var3);用給定的變數名創建一個數組
二、數組的分段和填充
數組的分段
array_slice($arr,0,3); 可以將數組中的一段取出,此函數忽略鍵名
array_splice($arr,0,3,array("black","maroon")); 可以將數組中的一段取出,與上個函數不同在於返回的序列從原數組中刪除
分割多個數組
array_chunk($arr,3,TRUE); 可以將一個數組分割成多個,TRUE為保留原數組的鍵名
數組的填充
array_pad($arr,5,'x'); 將一個數組填補到制定長度
三、數組與棧
array_push($arr,"apple","pear"); 將一個或多個元素壓入數組棧的末尾(入棧),返回入棧元素的個數
array_pop($arr); 將數組棧的最後一個元素彈出(出棧)
四、數組與列隊
array_shift($arr);數組中的第一個元素移出並作為結果返回(數組長度減1,其他元素向前移動一位,數字鍵名改為從零技術,文字鍵名不變)
array_unshift($arr,"a",array(1,2));在數組的開頭插入一個或多個元素
五、回調函數
array_walk($arr,'function','words'); 使用用戶函數對數組中的每個成員進行處理(第三個參數傳遞給回調函數function)
array_mpa("function",$arr1,$arr2); 可以處理多個數組(當使用兩個或更多數組時,他們的長度應該相同)
array_filter($arr,"function"); 使用回調函數過濾數組中的每個元素,如果回調函數為TRUE,數組的當前元素會被包含在返回的結果數組中,數組的鍵名保留不變
array_rece($arr,"function","*"); 轉化為單值函數(*為數組的第一個值)
六、數組的排序
通過元素值對數組排序
sort($arr); 由小到大的順序排序(第二個參數為按什麼方式排序)忽略鍵名的數組排序
rsort($arr); 由大到小的順序排序(第二個參數為按什麼方式排序)忽略鍵名的數組排序
usort($arr,"function"); 使用用戶自定義的比較函數對數組中的值進行排序(function中有兩個參數,0表示相等,正數表示第一個大於第二個,負數表示第一個小於第二個)忽略鍵名的數組排序
asort($arr); 由小到大的順序排序(第二個參數為按什麼方式排序)保留鍵名的數組排序
arsort($arr); 由大到小的順序排序(第二個參數為按什麼方式排序)保留鍵名的數組排序
uasort($arr,"function"); 使用用戶自定義的比較函數對數組中的值進行排序(function中有兩個參數,0表示相等,正數表示第一個大於第二個,負數表示第一個小於第二個)保留鍵名的數組排序
通過鍵名對數組排序
ksort($arr); 按照鍵名正序排序
krsort($arr); 按照鍵名逆序排序
uksort($arr,"function"); 使用用戶自定義的比較函數對數組中的鍵名進行排序(function中有兩個參數,0表示相等,正數表示第一個大於第二個,負數表示第一個小於第二個)
自然排序法排序
natsort($arr); 自然排序(忽略鍵名)
natcasesort($arr); 自然排序(忽略大小寫,忽略鍵名)
七、數組的計算
數組元素的求和
array_sum($arr); 對數組內部的所有元素做求和運算
數組的合並
array_merge($arr1,$arr2); 合並兩個或多個數組(相同的字元串鍵名,後面的覆蓋前面的,相同的數字鍵名,後面的不會做覆蓋操作,而是附加到後面)
「+」$arr1+$arr2; 對於相同的鍵名只保留後一個
array_merge_recursive($arr1,$arr2); 遞歸合並操作,如果數組中有相同的字元串鍵名,這些值將被合並到一個數組中去。如果一個值本身是一個數組,將按照相應的鍵名把它合並為另一個數組。當數組 具有相同的數組鍵名時,後一個值將不會覆蓋原來的值,而是附加到後面
數組的差集
array_diff($arr1,$arr2); 返回差集結果數組
array_diff_assoc($arr1,$arr2,$arr3); 返回差集結果數組,鍵名也做比較
數組的交集
array_intersect($arr1,$arr2); 返回交集結果數組
array_intersect_assoc($arr1,$arr2); 返回交集結果數組,鍵名也做比較
八、其他的數組函數
range(0,12); 創建一個包含指定范圍單元的數組
array_unique($arr); 移除數組中重復的值,新的數組中會保留原始的鍵名
array_reverse($arr,TRUE); 返回一個單元順序與原數組相反的數組,如果第二個參數為TRUE保留原來的鍵名
//srand((float)microtime()*10000000); 隨機種子觸發器
array_rand($arr,2); 從數組中隨機取出一個或 多個元素
shuffle($arr); 將數組的順序打亂
求課吧有很多關於PHP編程方面的教程

『肆』 PHP中要使用數組的話必須先定義一個變數為「array()」的代碼嗎

不是必須的,可以不先用array()初始化。

數組是計算機編程語言上,對於「Array」的中文稱呼,是用於儲存多個相同類型數據的集合。將相同數據類型的元素按一定順序排列的集合,把有限個類型相同的變數用一個名字命名,然後用編號區分他們的變數的集合,這個名字成為數組名,編號成為下標。

組成數組的各個變數成為數組的分量,也稱為數組的元素,有時也稱為下標變數。數組是在程序設計中,為了處理方便, 把具有相同類型的若干變數按有序的形式組織起來的一種形式。這些按序排列的同類數據元素的集合稱為數組。

在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。

關於可變長數組(VLA)的問題:原來的C89標准中是不允許可變長數組出現的,但是在C99標准中,加入了對VLA的支持,但是支持的編譯器不多,而且由於棧溢出的安全問題,沒有太多的人敢用這個可變長數組,所以在C11標准中又把它規定為可選實現的功能了。

如果有過用其它語言編程的經歷,那麼想必會熟悉數組的概念。由於有了數組,可以用相同名字引用一系列變數,並用數字(索引)來識別它們。

在許多場合,使用數組可以縮短和簡化程序,因為可以利用索引值設計一個循環,高效處理多種情況。數組有上界和下界,數組的元素在上下界內是連續的。因為 Visual Basic對每一個索引值都分配空間,所以不要不切實際聲明一個太大的數組。

『伍』 用php寫出代碼:3,6,7,1,8,2,9,4,5,0按照從小到大的順序輸出數組的值。

這個問題,可以採用經典的冒泡排序。冒泡排序的過程如下:

1.比較相鄰的元素。如果第一個比第二個大,就交換順序。

2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。最後的元素會是最大的數。

3.針對所有的元素重復以上的步驟,除了最後一個。

4.持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

這個過程在轉化成代碼方式的思路為:

  1. 每次從最開始的一對相鄰元素比較,到結尾的一對元素比較完畢,可以看做一個完整的步驟,代碼表示如下:

for ($j = 0;$j < count($arr)-1;$j++)// 每一次循環表示一次比較和交換的過程。

{

if ($arr[$j]>$arr[$j+1])

{

$tmp = $arr[$j];

$arr[$j] = $arr[$j+1];

$arr[$j+1] = $tmp;

}

}

2.每次重新開始上一步驟都要比上一步少比較最後一個元素(因為上一步最後一個元素已經最大),這時需要增加一個外層循環來控制每次比較元素的個數。代碼如下:

for($i = 0;$i < count($arr);$i++)// 每一次外層循環表示從頭到尾執行了一次兩兩互相比較和交換。

{

for ($j = 0;$j < count($arr)-$i-1;$j ++)// 每一次內層循環表示一次比較和交換的過程。

{

if ($arr[$j]>$arr[$j+1])

{

$tmp = $arr[$j];

$arr[$j] = $arr[$j+1];

$arr[$j+1] = $tmp;

}

}

}

完成過程代碼如下:

閱讀全文

與php數組編程相關的資料

熱點內容
在哪裡下載梅花影視APP 瀏覽:991
張其凡pdf 瀏覽:55
bind命令 瀏覽:869
java樹類 瀏覽:203
編譯pcb原理圖 瀏覽:34
中文編譯器是什麼 瀏覽:63
linux中c命令 瀏覽:2
能看到哪裡加油便宜的app 瀏覽:925
單片機相序檢測程序 瀏覽:632
phpyii2api框架 瀏覽:713
弱雞程序員有出路嗎 瀏覽:473
python實現不同值影像8連通 瀏覽:210
伺服器16h是什麼意思 瀏覽:311
javaexecutor源碼 瀏覽:451
硬碟裡面沒有有效文件夾 瀏覽:520
15匹空調壓縮機多少錢 瀏覽:176
程序員u型鎖 瀏覽:120
實時視頻窗口捕獲演算法 瀏覽:199
單片機ad轉換的程序 瀏覽:788
河北磁碟陣列伺服器雲主機 瀏覽:703