1. 配列の処理:
1.1 配列の作成と初期化:
1. array() 関数は、デフォルトでは、要素 0 が配列の最初の要素です。 sizeof( ) 関数でデータ要素の数を取得します
2. 変数を使用して配列を作成します
compact() は、現在のシンボル テーブル内の変数名を検索し、それを出力配列に追加します。名前と変数 内容がキーの値になります。
コードをコピーします。 コードは次のとおりです。 ?php $num= 10;
$str="string";
$array=array("num","str") ,"配列");
print_r($newarray);
/*Result
array([num]=10 [str]=>string [array]=>array([0]=) >1 [1]=> ;2 [2]=>3))
*/
?>
extract() 配列内のセルを変数に変換します
コードをコピー
コードは次のとおりです:
$array=array("key1" =>1,"key2"=2, "key3"=3); extract($array)
echo "$key1 $key2 $key3";//出力 1 2 3
? >
3. 2 つの配列を使用して配列を作成します
コードをコピーします
コードは次のとおりです:
array_combine(array $keys, array $values ) $a=array('green','red',' yellow'); array(' volcado','apple','banana');
$c=array_combine($a,$b);
<🎜; >
4. 指定した範囲の配列を作成します
range( )
5. 配列を自動的に作成します
1.2 キー名と値に対する操作
このセクションでは、よく使用されるものについてのみ説明します
。特定のキーと値が配列内に存在し、使用できるかどうかを確認します。 Array_key_exists() および in_arrary 関数では、isset() は配列内のキー名をチェックします。キー名が NULL の場合、isset() は false を返しますが、array_key_exists() は
を返します。 array_search() 関数は、配列のキー値が存在するかどうかを確認するために使用されます。存在しない場合は、NULL が返されます。
。 key() 関数は、配列
の現在のユニットのキー名を取得できます。 list() 関数は、配列内の値を指定された変数に割り当てます。配列のトラバーサルに非常に便利です。
$arr=array("red","blue","white");
list($red,$blue,$white)=$arr; $red; //レッド
エコー $ブルー; //ブルー
エコー $ホワイト
。 array_fill() と array_fill_keys() は、配列の値とキーを指定された値
で埋めることができます。 array_filp()は配列内のキー名と値を交換することができます。また、交換配列内に同じ値がある場合、同じ値をキー名に変換した後、最後の
を交換します。値は保持されます。 array_keys() 関数と array_values() 関数は、配列内のキー名と値を取得し、新しい配列に保存できます。
。 array_splice(arry $input,int $offset[,int $length[,array $replacement]]) は、配列内の 1 つ以上のセルを削除し、他の値に置き換えます。
。 array_unique() は、元の配列を破壊することなく、配列から重複した値を削除し、新しい配列を返すことができます。
1.3 配列の走査と出力
1. while ループを使用して配列にアクセスします
while、list()、および each() 関数を適用して配列を走査します
2.
3. foreach を使用して配列をループします
コードをコピーします
コードは次のとおりです。
php
$color=array(" a"=>"red","blue","white");
foreach($color as $value)
{ echo $value. "
";//配列の値を出力} foreach($color as $key=>$value) {
echo $key."=>"。 $value."
"; //配列のキー名と値を出力します
}
?>
例 4.1 ページ上にテキスト ボックスを生成します。ユーザーが生徒のスコアを入力し、フォーム送信後、60未満のスコアを出力します。スコア値は、平均スコアを計算した後に計算され、出力されます。
コードをコピー
コードは次のとおりです:
echo "
";
if(isset($_POST['bt'])) //检查提交按钮是否按下
{
$sum=0; //总成绩初始化为0
$k=0;
$stu=$_POST['stu']; //取得所有文本框的值并赋予数组$stu
$num=count($stu); //计算数组$stu元素个数
echo "您输入的成绩有:
";
foreach($stu as $score) //使用foreach循环遍历数组$stu
{
echo $score."
"; //输出接收的值
$sum=$sum+$score; //计算总成绩
if($score<60) //判断分数小于60的情况
{
$sco[$k]=$score; //将分数小于60的值赋给数组$sco
$k++; //数组$sco的键名索引加1
}
}
echo "
低于60分的成绩有:
";
for($k=0;$k
echo $sco[$k]."
";
$average=$sum/$num; //计算平均成绩
echo "
平均分为:$average"; //输出平均成绩
}
?>
1.4 数组的排序
1.升序排序 。sort(array $array[,int $sort_flags])
注意:在对含有混合类型值的排序时要小尽,因为可能会产生错误。
asort()也可升序排序,是对数组的值进行排序,但它排序后的数组还保持键名和值之间的关联。
Ksort()对数组的键名排序,排序后键名和值之间的关联不改变。
2.降序排序。 rsort()、arsort()、krsort()
3.多维数组的排序。
4.对数组重新排序。
。shuffle()函数.作用将数组用随机的顺序排列,并删除原有的键名
。array_reverse()函数.将一个数组按相反顺序排序.
5.自然排序
。natsort().对大小写敏感
1.5其它操作
1. 合并数组
array_merge($array1,$array2).合并后将一维数以后的数组都当做一个单元返回。array_merge_recusive()可以在保持现有数组结构下对数组进行合并。
2. 数组的栈操作.
出栈: array_pop($arr);
入栈: array_push($arr,var);
3.取得数组当前单元
1. current()函数能够获取数组内部指针指向的单元的值,但不移动数组的内部指针。
2. next($arr),将指针移到下一个单元。
3. end($arr)将指针移到尾部。
4.数组计算
count()、sizeof()计算数组中的元素个数
array_count_values()函数可以计算数组中的一个值出现的次数
例:4.2 处理表格数据
接收用户输入的学生学事情、姓名、成绩等信息,将接收到的信息存入数组并按照成绩升序排序。之后再以表格输出。.
复制代码 代码如下:
注: 学籍番号の値は繰り返すことはできません
if(isset($_POST['bt_stu'])) //ボタンが押されたかどうかを判定します
{
$XH=$_POST['XH']; //受信すべての生徒番号の値を取得し、配列に格納 $XH
$XM=$_POST['XM'] //すべての名前の値を取得し、配列に格納 $XM
$CJ=$_POST['CJ']; //すべてのスコアの値を受け取り、配列に格納 $CJ
array_multisort($CJ,$XH,$XM);上記の 3 つの配列を並べ替えます。$CJ がプライマリ配列です
for($i=0;$i$sum[$i]=array($XH[$ i],$XM[$i],$CJ[$i]); // 3 つの配列の値をバイナリ ディメンション配列に結合します $sum
echo "ソートされたスコア表は次のとおりです:
";
//表のヘッダー
echo "学生ID< /td> | Name | Achievements |
";
foreach($ sum as $value) // foreach ループを使用して配列 $ を走査しますsum
{
list($stu_number,$stu_name,$stu_score)=$value; //list() 関数を使用して、配列内の値を Variable
//テーブルの内容を出力します
echo "$stu_number | $stu_name | $stu_score |
";
echo "
"; //テーブルの末尾
reset($sum) //$sum 配列のポインタをリセットします
while(list($key) ,$value)=each($sum)) //while ループを使用して配列を走査します
{
list($stu_number,$stu_name,$stu_score)=$value; ="081101") //学生番号 081101 の値があるかどうかを問い合わせます
{
echo ""; stu_number." は ".$stu_name."、";
echo " は ".$stu_score; // 見つかったらループを終了します。
}
}
?>