忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2017/05/25 02:46 |
PHP1-5:配列
10個の変数を使用したいとしましょう。

$a0='apple';
$a1='orange';
$a2='banana';
$a3='grape';
$a4='peach';
$a5='melon';
$a6='blueberry';
$a7='blackberry';
$a8='raspberry';
$a9='strawberry';


疲れました。

すべての値を表示したい場合は、以下のように書かねばなりません。

print($a0.'<br>'.$a1.'<br>'.$a2.'<br>'.$a3.'<br>'.$a4.'<br>'
         .$a5.'<br>'.$a6.'<br>'.$a7.'<br>'.$a8.'<br>'.$a9);

10個の中から特定の文字を検索したい、となるともっと大変です。

$match_word='peach';
if($a0==$match_word){print('0');}
elseif($a1==$match_word){print('1');}
elseif($a2==$match_word){print('2');}
elseif($a3==$match_word){print('3');}
elseif($a4==$match_word){print('4');}
elseif($a5==$match_word){print('5');}
elseif($a6==$match_word){print('6');}
elseif($a7==$match_word){print('7');}
elseif($a8==$match_word){print('8');}
elseif($a9==$match_word){print('9');}

たとえば変数が100個になったら、などと考えると馬鹿馬鹿しすぎて実用になりません。

このような無駄を排除するため、ほぼ全ての言語には配列という機能が備わっています。
使用方法は慣れないと面倒かもしれませんが、考え方としては簡単です。
配列名に数字を使えるようにした、というだけです。
とりあえず書き換えてみましょう。

$a[0]='apple';
$a[1]='orange';
$a[2]='banana';
$a[3]='grape';
$a[4]='peach';
$a[5]='melon';
$a[6]='blueberry';
$a[7]='blackberry';
$a[8]='raspberry';
$a[9]='strawberry';

どこが変わったかというと、数字が[]で括られているというところだけです。
これで何が違うか、最大の利点は、[]内の数値に変数を入れることが出来るという点です。
表示、検索を配列で書き換えてみましょう。

for($i=0;$i<count($a);$i++){
 print($a[$i].'<br>');
}

for($i=0;$i<count($a);$i++){
 if($a[$i]==$match_word){print($i);}
}


このように大量の変数に対して繰り返し同じ処理を行いたい、
そのような場合に威力を発揮するのが配列です。

さて、表示検索は短く書き換えられたのに、定義だけは長文のままです。
もちろんこれも短く書ける方法があります。しかも複数。
以下の設定方法は、どちらも同じになります。
下のように設定する意味は次回わかるでしょう。きっと。

$a=array('apple','orange','banana','grape','peach','melon',
              'blueberry','blackberry','raspberry','strawberry');

$a=array('0'=>'apple','1'=>'orange','2'=>'banana','3'=>'grape',
                '4'=>'peach','5'=>'melon','6'=>'blueberry',
                '7'=>'blackberry','8'=>'raspberry','9'=>'strawberry');


配列を使用すると入力値の処理等が劇的に楽になりますので、是非使用法をマスターしましょう。

ちなみに上の表示検索処理ですが、もっと簡単な関数が用意されていたりします。

print_r($a);

print(array_search($match_word,$a));

PR


2008/04/21 12:32 | Comments(0) | TrackBack(0) | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<PHP1-6:連想配列と多次元配列 | HOME | PHP1-4:変数の使用>>
忍者ブログ[PR]