LotosLabo

プログラミング技術とか気になった情報を載せていきます

PHP言語について3

配列

配列の作成

$vegetables['corn'] = 'yellow';
$vegetables['beet'] = 'red';

$dinner[0] = 'Sweet Corn And Asparagus';
$dinner[1] = 'Lemon Chicken';
$dinner[2] = 'Braised Bamboo Fungus';

$computers['trs-80'] = 'Radio Sack';
$computers[2600] = 'Atari';
$computers['Adam'] = 'Coleco';


array()関数で作成

$vegtables = array('corn' => 'yellow',
                   'beet' => 'red',
                   'carrot' => 'orange');
print "I want $vegtables[0]  and  $vegtables[1].";


配列のサイズを調べる


count()関数により配列の要素の数がわかる
count(配列の変数)


例:

<?php
$dinner = array('Sweet Corn And Asparagus', 'Lemon Chicken', 'Braised Bamboo Fungus');
$dishes = count($dinner);
print "There are $dishes things for dinner.";
?>


出力:

There are 3 things for dinner.

foreach()関数


通るたびに配列の要素の値を反復処理するもの


foreach (配列 as $key => $value){
処理
}

<テーブル作り>
<?php
$meal = array('breakfast' => 'Walnut Bun', 
        'lunch' => 'Cashew Nuts and White Mushrooms',
              'snack' => 'Dried Mulberries', 
              'dinner' => 'Eggplant with Chili Sauce');		  
print "<table>\n";			  
foreach ($meal as $key => $value){
print "<tr><td>$key</td><td>$value</td></tr>\n";
  }			  
print '</table>';
?>


出力

breakfast Walnut Bun
lunch Cashew Nuts and White Mushrooms
snack Dried Mulberries
dinner Eggplant with Chili Sauce



for()でforeachを代用する

<数値配列>


例:

<?php
$dinner = array('Sweet Corn and Asparagus',
                                   'Lemon Chicken',
	              'Braised Bamboo Fungus');				
for ($i = 0, $num_dishes = count($dinner);  $i <  $num_dishes;  $i++){
	print "Dish number $i is $dinner[$i]\n";	
}
?>


配列要素の順番

<foreach>

例:

<?php
$letters[0] = 'A';
$letters[1] = 'B';
$letters[3] = 'D';
$letters[2] = 'C';
foreach($letters as $letter){	
print $letter;
}
?>


出力

ABDC


<for文>


例:

<?php
$letters[0] = 'A';
$letters[1] = 'B';
$letters[3] = 'D';
$letters[2] = 'C';
for($i =0, $num_letters = count($letters); $i < $num_letters; $i++){
	print $letters[$i];
}
?>



出力

ABCD



foreachは配列内を反復するときに上から順番に検証するために異なる順番で要素を配置すると予期しない結果になってしまう。しかしforだとアルファベット順に並び替えてくれる。


配列で特定の要素を探索


array_key_wxistsを使う。認定されたキーを持つ要素が設定された配列に有る場合はtrueを返す。


例:

//true
if(array_key_exists('Shrimp Puffs', $meals)){
	print "Yes, we have Shrimp Puffs";
}
// false
if(array_key_exists('Steak Sandwich', $meals)){
	print "We have a Steak Sandwich";
}


特殊な値で要素をチェツク


in_array()関数を使用する。文字列を比較するときに慎重さを必要とされる。また、大文字と小文字を区別する。


例:

if(in_array(3, $meals)) {
	print 'There is a $3 item.';
}


array_search


要素を見つけるとtrueの代わりに要素キーを返す。


unset()


配列の要素を破棄する


例:

<?php
$value = 150;
unset($value);
print $value;
?>


出力:

何もなし


implode()関数

配列内にすべての値を出力



例:

<?php
$dimsum = array('Chicken Bun','Stuffed Duck Web','Turnip Cake');
$menu = implode(', ', $dimsum);
print $menu;
?>


出力

Chicken Bun, Stuffed Duck Web, Turnip Cake



explode()関数

文字列を配列に変換する


例:

<?php
$fish = 'Bass, Carp, Pike, Flounder';
$fish_list = explode(',',$fish);
print "The second fish is $fish_list[1]";
?>


出力:

The second fish is Carp


配列の並び替え

sort()関数 配列の並び替え

asort()関数 要素値で連想配列を並び替え

ksort()関数  キーによる配列を行う

<逆>

rsort()    arsort()     krsort()
という降順に並べ変えるものもある。