① 用php設計一個函數,要求將數字數組中所有奇數放在左邊,0放在中間,偶數放在右邊。
<?php
function sort_nums($arr) {
$new_array = array(0);
sort($arr);
for($n = 0; $n < count($arr); $n++) {
if($arr[$n] != 0) {
if($arr[$n] % 2 == 0) {
array_push($new_array, $arr[$n]);
}
else {
array_unshift($new_array, $arr[$n]);
}
}
}
return $new_array;
}
$numbers = array(23, 94, 0, 2, 56, 10, 77, 231, 75, 48);
print_r(sort_nums($numbers));
// 輸出 231, 77, 75, 23, 0, 2, 10, 48, 56, 94
?>
② PHP中使用foreach循環讀取數組數據的方法
foreach語法結構提供了遍歷數組的簡單方式。foreach僅能夠應用於數組和對象,如果嘗試應用於其他數據類型的變數,或者未初始化的變數將發出錯誤信息。有兩種語法:
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一種格式遍歷給定的array_expression數組。每次循環中,當前單元的值被賦給$value並且數組內部的指針向前移一步(因此下一次循環中將會得到下一個單元)。
第二種格式做同樣的事,只除了當前單元的鍵名也會在每次循環中被賦給變數$key。
範例:
$a=array("one"=>1,"two"=>2,"three"=>3,"seventeen"=>17);foreach($aas$k=>$v){echo"$a[$k]=>$v. ";}
③ 用php寫出代碼:3,6,7,1,8,2,9,4,5,0按照從小到大的順序輸出數組的值。
這個問題,可以採用經典的冒泡排序。冒泡排序的過程如下:
1.比較相鄰的元素。如果第一個比第二個大,就交換順序。
2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。最後的元素會是最大的數。
3.針對所有的元素重復以上的步驟,除了最後一個。
4.持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
這個過程在轉化成代碼方式的思路為:
每次從最開始的一對相鄰元素比較,到結尾的一對元素比較完畢,可以看做一個完整的步驟,代碼表示如下:
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 如何定義一個數組
php中定義數組的方法:x0dx0ax0dx0a1、PHP定義數組的格式:x0dx0a數組名=array();x0dx0a如:$aa=array();//這樣就定義了一個數組,x0dx0a之後給元素賦值:x0dx0a$aa[0]="9016";x0dx0a$aa[1]="9017";x0dx0a$aa[2]="9018";x0dx0ax0dx0a2、PHP輸出數組的方法:x0dx0aforeach($aa as $val)x0dx0a{x0dx0aecho$val;x0dx0a}x0dx0a也可以在定義數組時直接賦值x0dx0a$aa=array(0=>"9016",1=>"9017";2=>"9018");x0dx0ax0dx0a3、PHP的數組還可以用字元做下標,不一定要數字:x0dx0a$aa["name"]="Joan";x0dx0a$aa["num"]="9018";x0dx0a$aa["email"]="[email protected]";x0dx0a也可以這樣x0dx0a$aa=array("name"=>"joan","num"=>"9018","email"=>"[email protected]");x0dx0a將一個一維數組的元素也定義為數組,就是一個二維數組,x0dx0a$aa=array(0=>"a1",1=>"a2");x0dx0a$bb=array(0=>"b1",1=>"b2");x0dx0a$cc=array(0=>$aa;1=>$bb);此時,$cc[0]也是一個數組,$cc[1]也是一個數組,$cc就是一個二維數組。x0dx0a同理,三維,四維數組也可以繼續定義下去。x0dx0ax0dx0a4、數組的元素不僅於數字和字元串,可以是類的對象。
⑤ 怎麼在php中輸出數組中的值
1、在test.php文件內,使用header設置test.php執行的編碼為utf8,避免輸出中文的時候出現亂碼。