【PHP学習100日目おめでとう】2日目:Crazy arrays
前リンク:PHP学習100日目おめでとう
1日目
今号の標語:
PHP を学習するときに、一部の知識ポイントはよく学習できるのに、他の知識ポイントはまったく学習できないと常に感じるのはなぜですか? それは、学習中に顔の筋肉が過度に緊張し、神経終末の壊死を引き起こし、足が不自由になるためです。
この号の知識ポイント: php 配列
配列は、PHP の最も象徴的なツール関数です。 PHP 配列をよく学べば、基本的には PHP の世界に参加するための初期資金が得られます。
かつて、コンピュータ会社を設立した友人がいました。一般に、コンピュータ会社の主な業務はコンピュータの販売ですが、場合によっては、映画やゲームなどの CD も販売する場合もあります。技術に詳しい私の友人も草の根プログラマーで、CD、特に島国の CD を販売する行為を大嫌いです。初期の長い間、彼の主なビジネスは一部の企業や企業の Web サイト構築を支援することでした。当時のプロモーション Web サイトは、現在ほど複雑ではなく、基本的に 2 ~ 3 ページしかなく、インターフェイスも 10 個を超えることはありませんでした。当時、彼は非常に機敏で効率的に稼いでいました。私はそのウェブサイトのコードをすべて覚えていませんが、大まかに説明することしかできません。 PHP:
<?php
$var=file("./产品列表.txt");//当时用access还不如用 txt
if(!$var || is_array($var) || count($var)==0) exit("系统繁忙,请稍后再试");
$fix=array("中国XXX最大的网站","只有我们的产品是正宗的","假一罚十绝不坑人","上哪能买到如此好的XXX不要再犹豫了");
?>
<html>
<head>
<title><?php echo $fix[0]?></a></title>
</head>
<body>
<table style="width: 800px;"> //注意当时800*600是国标,不要想太多
<tr>
<td style="background: .........;">
<?php echo $fix[0].'---------'.$fix[1] ?>
</td>
</tr>
<tr>
<td>
....这里是乱七八糟的 假大空神句 .......
</td>
</tr><br> <br> <tr>
<td>
....这里是同类网站各自<strong>互相支持</strong>穿插的广告,如:“激起你心中的虎”或“用了XXX后腿脚好了,也不起夜了”等等。
</td>
</tr>
?
<tr> <br> <td> <?php foreach($var as $eachline) <br> echo '<li><a href="这里是商品详细页的链接">'.$eachline.'</a></li>'; <br>//商品标题很耸听,意思是不买 你会后悔白来世上一趟
?>
</td>
</tr>
<tr>
<td>
........注意这里已然是页面的尾部了.......... //注意当时 备案 真的不严
<?php echo $fix[2].$fix[3] ?>
<?php echo date('Y-m-d H:i:s');?> //注意当时我朋友不会脚本,因此该页面要刷一次才会变化当前时间。
</td>
</tr>
</table>
</body>
</html>
ログイン後にコピー
さて、上記は私の友人が生き残るために頼っている基本的なスキルです。同じタイプのお客様の場合、「商品一覧.txt」の内容を変更して、tdの背景画像を差し替えるだけで、すぐにページが新しくなるそうです。当時は本気で「製品化」を達成した開発モデルでした。私が ASP をとても尊敬しているのは、私が初めて ASP を学んだとき、ASP は決してそれほど「構成可能」ではなかったからです。
ウェブページ内の広告や記述にあまり巻き込まれないでください。とにかく、初心者の私はこのウェブページを見て、お金を出して試してみようと思いましたが、友人はまだそれを使用する準備ができていないと言いました。 。 「いつ使えるの?」と聞いたら、友達に「ビンタ」されました。
次に本題に入り、上記の知識ポイントを解説していきます。
1. 配列の最も基本的な表現形式
$fix=array("Content1","Content2","Content3"); これは、PHP 配列を表現する最も基本的な方法です。あまりにも気持ち悪いので、もう広告を入力しないことを許してください。
書き留めることができる限り、コンテンツはいくらでも蓄積できます。内部のコンテンツを呼び出したい場合は、$fix[0], $fix[1]...$fix[n] のように「0」から数えていくだけです。
注: なぜ 0 から始める必要があるのでしょうか? 1 つは、「php ボス」がこのように設計したためであり、もう 1 つは、この最も基本的な配列の実際の形式が
であるためです。
$fix=array(0=>"コンテンツ 1",1=>"コンテンツ 2",2=>"コンテンツ 3");
「=>」の記号は省略されていますが、この記号の左側がキー、右側が「$key=>$value」と説明されていることが多いです。なぜ左側が $key で右側が $ なのかというと、これは $ss=>$bb と書く必要があるのが一般的な方法です。左側がキー、右側が値です。
つまり、どの形式の配列にもキーと値があります。省略するかどうかはあなた次第です、省略するかどうかは関係なく、私はそれを行いました。
少し拡張します: キー値があるので、キー値を変更できます。
例: $fix=array("誇張された Web サイト名"=>"中国最大の XXX Web サイト"、"でたらめな製品ブランド"=>"当社だけが最も本物です"、"見た後に吐きたくなるような広告スローガン彼らの意見を聞いて "=>"偽の 10 ペナルティでは誰も騙されません");
この時点で、「でたらめな製品ブランド」をページに出力したい場合は、キーの値が変更されているため、echo $fix[1]; は使用できません。
echo $fix['でたらめな製品ブランド'] を使用する必要があります
2. 配列を走査します
例として $fix=array("Content1","Content2","Content3") を引き続き使用します
1. foreach の使用は、小さな配列をループするのに最も適切で適切な方法です。
基本的な構文は次のとおりです: foreach (元の配列は、走査されるたびに設定される変数です)
例: foreach($var as $eachline) echo $eachline; コンテンツ 1...コンテンツ 3 を出力します。
2. 多くの人は、実際には配列
を走査できる while があることを知っています。
基本的な構文は次のとおりです: while(list($key,$value)=each($attr))
例: while(list($key,$value)=each($fix)) echo $key.$value; は、0 コンテンツ 1. を順に出力します。 。 。 。 2 コンテンツ 2
これら 2 つのタイプのトラバースの違いについては、ここではあまり深く説明しません。後で説明しますが、データをトラバースしたいだけの場合はいつでも foreach を使用してください。反復中に配列の値を変更したい場合は、while を使用します。その理由は「速い」の一言に尽きます。現代では生活のペースが速すぎて、プログラムを書くときの第一原則は「速く」です。
その他の配列をトラバースする構文については、学者試験を受験しない限りは覚える必要はないと個人的には思っていますが、実戦であればこの2つで十分ですし、高速性も求められます。
少し拡張すると、配列内の値には文字列だけでなく、任意の形式の配列や変数値も含めることができます。
例: $fix=array("でたらめな広告スローガン"=>array("注文した先着 100 名にさらに 200 元のギフト パッケージをプレゼントします", "20 日以内に特定の言語に堪能になります", "子供たちは英語を話せませんX が足りないので食べる") );
このような配列の場合、$fix['でたらめな広告スローガン'] の値は実際には配列
です。
たとえば、 echo $fix['でたらめな広告スローガン'][1] は、「20 日間で特定の言語をマスターします」と出力します
3. 配列の代入
例を挙げてみましょう:
$fix=array(); この配列は空です。
$fix[]="Content1"; これは $fix=array("Content1"); または $fix=array(0=>"Content1");
と同等です。
$fix[]="Content2"; これは $fix=array("Content1","Content2"); または $fix=array(0=>"Content1",1=>"Content2"); と同等です。
$fix['What are we learning']='php'; これは $fix=array(0=>"Content 1","What are we learning"=>"php");
と同等です。
実際、上記の割り当てはすべて配列の最後に割り当てられます。構文は $fix=array_push($fix, "Content 1", "Content 2"); です。効果は同じですが、array_push を一度に使用できる点が異なります。複数の値を追加するには、'[]' を一度に 1 つずつ使用します。
PHP の配列関数は非常に強力で、配列の並べ替え、結合、反転、削除など、ほとんどすべての操作を行うことができます。スペースの問題のため、ここでは詳しく説明しません。それらの機能に頼って使い方を知ることは難しくありません。ただし、実際のプロジェクトとなると、データベース ストアド プロシージャ、最適化されたテーブル構造、適切なデータ ソート アルゴリズム、および熟練したデータ読み取り方法を通じて多くのデータ処理を実行する必要があります。実際には、PHP の多くの配列関数は基本的に For です。たとえば、1230X のようなプロジェクトを受け取り、すべての中国人の名前をリストして並べ替えたい場合、PHP 配列を使用してトラバース、マージ、およびリバースを行う勇気はありますか?もちろん、顧客がバチカンやアイスランドの場合は、これを行うことができます。
" ただし、is_array -- 配列であるかどうか、in_array -- 特定の値が存在するかどうか、array_key_exists -- 特定のキー値が配列内に存在するかどうかなど、多くの関数は一般的に使用される関数です。学んでください。それを学べないなら、リーダーになるのもそう遠くない。
イースターエッグ:
上記の記事には $var=file("./product list.txt"); がありますが、これはテキスト文書が一度に読み取られ、改行文字も含めて 1 行ずつ配列に読み込まれることを意味します。
翌日はPHPのファイル操作についてお話しますので、ウォーミングアップしてください。