PHP配列操作要約php配列の使い方
18027 ワード
配列は,PHPのデータ応用において重要な方式といえる.PHPの配列関数は多くて、以下は私が勉強した小結で、これによって覚えて、後で鑑識しやすいです.
1.配列定義
配列の定義はarray()方式で定義され、空の配列を定義できます.
2.配列の作成
compact()
compact()関数――1つ以上の変数(配列を含む)を配列に変換します:array compact(mixed$varname[,mixed$...]).
compact()関数は、2つ以上の変数を配列に変換するために使用され、もちろん配列変数も含まれます.そのパラメータは、$フルネームではなく変数の名前です.反対の関数はextract()の役割であり,配列を単一の文字列に変換し,キー値をその文字列名,配列値を文字列の値とする.
実行結果:
array_combine()
array_combine()――2つの配列を1つの配列に再編成し、1つのキー値を1つの値にする:array array_combine ( array $keys , array $values )
array_combine関数はあまり言わないので、誰が見ても分かります.
実行結果:
Array ( [1] => I [3] => Am [5] => A [7] => PHP [9] => er )
range()
range()関数――指定した範囲の配列を作成します.
array_fill()
array_Fill()関数――配列関数を埋め込む:
1.配列定義
配列の定義はarray()方式で定義され、空の配列を定義できます.
$number = array(1,3,5,7,9);
//
$result = array();
$color =array("red","blue","green");
//
$language = (1=>"English",3=>"Chinese",5=>"Franch");
//
$two = array(
"color"=>array("red","blue"), //
"week"=>array("Monday","Friday") //
);
?>
2.配列の作成
compact()
compact()関数――1つ以上の変数(配列を含む)を配列に変換します:array compact(mixed$varname[,mixed$...]).
$number = "1,3,5,7,9";
$string = "I'm PHPer";
$array = array("And","You?");
$newArray = compact("number","string","array");
print_r ($newArray);
?>
compact()関数は、2つ以上の変数を配列に変換するために使用され、もちろん配列変数も含まれます.そのパラメータは、$フルネームではなく変数の名前です.反対の関数はextract()の役割であり,配列を単一の文字列に変換し,キー値をその文字列名,配列値を文字列の値とする.
実行結果:
Array (
[number] => 1,3,5,7,9
[string] => I'm PHPer
[array] => Array ( [0] => And [1] => You? )
)
array_combine()
array_combine()――2つの配列を1つの配列に再編成し、1つのキー値を1つの値にする:array array_combine ( array $keys , array $values )
$number = array("1","3","5","7","9");
$array = array("I","Am","A","PHP","er");
$newArray = array_combine($number,$array);
print_r ($newArray);
?>
array_combine関数はあまり言わないので、誰が見ても分かります.
実行結果:
Array ( [1] => I [3] => Am [5] => A [7] => PHP [9] => er )
range()
range()関数――指定した範囲の配列を作成します.
$array1 = range(0,100,10);//0 ,100 ,10 ( 1).
print_r($array1);
echo"
";
$array2 = range("A","Z");
print_r($array2);
echo "
";
$array3 = range("z","a");
print_r($array3);
?>
array_fill()
array_Fill()関数――配列関数を埋め込む:
$array = range(1,10);
$fillarray = range("a","d");
$arrayFilled = array_fill(0,5,$fillarray);// $fillarray , "test".
echo "";
print_r ($arrayFilled);
echo "
";
$keys = array("string","2",9,"SDK","PK");
$array2 = array_fill_keys($keys,"testing");
echo "";
print_r ($array2);
echo "
";
?>
:
Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[1] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[2] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[3] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[4] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
)
Array
(
[string] => testing
[2] => testing
[9] => testing
[SDK] => testing
[PK] => testing
)
3. の
foreach
foreach (array_expression as $value){}
foreach (array_expression as $key => $value){}
$speed = array(50,120,180,240,380);
foreach($speed as $keys=>$values){
echo $keys."=>".$values."
";
}
?>
:
0=>50
1=>120
2=>180
3=>240
4=>380
whileループ
whileループループは にlist を し、 はインスタンスです.
$staff = array(
array(" "," "," "),
array(" "," ",24),
array(" "," ",25),
array(" "," ",23)
);
echo "";
while(list($keys,$value) = each($staff)){
list($name,$sex,$age) = $value;
echo "";
}
echo "$name $sex $age
";
?>
forループループ
$speed = range(0,220,20);
for($i =0;$iecho $speed[$i]." ";
}
?>
:
0 20 40 60 80 100 120 140 160 180 200 220
4. のポインタ
にはreset、prev、end、next、current、eachが まれる.
1:nextとprev
$speed = range(0,220,20);
echo current($speed);// ( )
$i = rand(1,11);
while($i--){
next($speed);//
}
echo current($speed);//
echo "
";
echo prev($speed);//
echo "
";
echo reset($speed);// ,
echo "
";
echo end($speed);//
echo "
";
?>
:
0220
200
0
220
2:each ポインタ
$speed = range(0,200,40);
echo "each
";
echo "0 ".current(each($speed))."
";
echo "1 ".current(each($speed))."
";
echo "2 ".current(each($speed))."
";
echo "3 ".current(each($speed))."
";
echo "4 ".current(each($speed))."
";
echo "5 ".current(each($speed))."
";
echo " each ,
";
reset($speed);//
while(list($key,$value)=each($speed)){
echo $key."=>".$value."
";
}
?>
:
each
0 0
1 40
2 80
3 120
4 160
5 200
each ,
0=>0
1=>40
2=>80
3=>120
4=>160
5=>200
5.
:$num[] = value :
[code]$num = array(1=>80,2=>120,3=>160);
echo "
";
$num[]=240;
print_r($num);
?>
:
を した メンバーの
Array ( [0] => 80 [1] => 120 [2] => 160 [3] => 240 )
2:array_pad 、 の と の の
$num = array(1=>80,2=>120,3=>160);
$num = array_pad($num,4,200);
echo " array_pad
";
print_r($num);
echo "
array_pad
";
$num = array_pad($num,-8,40);
print_r($num);
?>
:
array_の pad の にメンバーを
Array ( [0] => 80 [1] => 120 [2] => 160 [3] => 200 )
array_padは のヘッダを め むこともできます
Array ( [0] => 40 [1] => 40 [2] => 40 [3] => 40 [4] => 80 [5] => 120 [6] => 160 [7] => 200 )
3:インスタック (array_push):
$num = array(1=>80,2=>120,3=>160);
array_push($num,200,240,280);// ,
print_r($num);
?>
:
Array ( [1] => 80 [2] => 120 [3] => 160 [4] => 200 [5] => 240 [6] => 280 )
4:array_unshift() に メンバーを する
$num = array(1=>80,2=>120,3=>160);
array_unshift($num,0,40);// ,
print_r($num);
?>
:
Array ( [0] => 0 [1] => 40 [2] => 80 [3] => 120 [4] => 160 )
:array_unshift() の のキー は0から まります!
メンバーの
インスタンス1:unset()コマンドは、 メンバーまたは を します.
$num = array_fill(0,5,rand(1,10));
print_r($num);
echo "
";
unset($num[4]);
print_r($num);
echo "
";
unset($num);
if(is_array){
echo "unset ";
}else{
echo "unset ";
}
?>
:( エラーおよび も され、 しません)
Array ( [0] => 9 [1] => 9 [2] => 9 [3] => 9 [4] => 9 )
Array ( [0] => 9 [1] => 9 [2] => 9 [3] => 9 )
Notice: Use of undefined constant is_array - assumed 'is_array' in H:\wamp\www\testing\editorplus\test.php on line 21
unsetコマンドでは を できません
2:array_splice() メンバーの
$a=array("red", "green", "blue", "yellow");
count ($a); // 4
array_splice($a,1,1); //
count ($a); // 3
echo $a[2]; // yellow
echo $a[1]; // blue
?>
3:array_Unique の を するには、 の に います.
$a=array("red", "green", "blue", "yellow","blue","green");
$result = array_unique($a);
print_r($result);
?>
:
Array ( [0] => red [1] => green [2] => blue [3] => yellow )
4:array_merge、array_merge_recursive
$array1 = array("r"=>"red",1,2,3,4);
$array2 = array("b"=>"blue",4=>5,6,7,8,9);
$array3 = array("r"=>"read",4=>10,2=>11);
$array4 = array(
array(4=>10),
array(7=>13)
);
$array5 = array(
array(4=>11),
array(6=>12)
);
$result = array_merge($array1,$array2,$array3,$array4,$array5);
echo "";
print_r($result);
echo "
";
$result = array_merge_recursive($array1,$array2,$array3,$array4,$array5);
echo "";
print_r ($result);
echo "
";
?>
:
Array
(
[r] => read
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[b] => blue
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 11
[11] => Array
(
[4] => 10
)
[12] => Array
(
[7] => 13
)
[13] => Array
(
[4] => 11
)
[14] => Array
(
[6] => 12
)
)
Array
(
[r] => Array
(
[0] => red
[1] => read
)
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[b] => blue
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 11
[11] => Array
(
[4] => 10
)
[12] => Array
(
[7] => 13
)
[13] => Array
(
[4] => 11
)
[14] => Array
(
[6] => 12
)
)
:1.array_mergeのキー が であるとインデックスが されます. じ キー に すると、 ろのキーが のキーを きします.2. array_merge_recursive の は、 じ のキーリスト を に することです.
6. のキー と
1:in_Array() に があるかどうかを
$array = range(0,9);
if(in_array(9,$array)){
echo " ";
}
?>
: に
2:key() の のキー を する:
$array = range(0,9);
$num = rand(0,8);
while($num--)
next($array);
$key = key($array);
echo $key;
?>
この の は、ダイナミックな であり、 (0-8)であり、 のプレゼンテーションは われません.
インスタンス3:list() は、 の を した に り てます.
$staff = array(
array(" "," "," "),
array(" "," ",24),
array(" "," ",25),
array(" "," ",23)
);
echo "";
while(list($keys,$value) = each($staff)){
list($name,$sex,$age) = $value;
echo "";
}
echo "$name $sex $age
";
?>
4:array_flip()は のキー と を します.
$array = array("red","blue","yellow","Black");
print_r($array);
echo "
";
$array = array_flip($array);
print_r($array);
?>
:
Array ( [0] => red [1] => blue [2] => yellow [3] => Black )
Array ( [red] => 0 [blue] => 1 [yellow] => 2 [Black] => 3 )
$array = array("red","blue","yellow","Black");
$result = array_keys($array);
print_r($result);
echo "
";
$result = array_values($array);
print_r($result);
?>
:
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
Array ( [0] => red [1] => blue [2] => yellow [3] => Black )
6:array_search() :
$array = array("red","blue","yellow","Black");
$result = array_search("red",$array);
if(($result === NULL)){
echo " red";
}else{
echo " $result";
}
?>
: 0
array_search()で される はfalseまたは0またはNULLの がありますので、 に「==」を することに してください.
7. の べ え
1:sort()、rsort()/asort()、arsort() のソート:
$array = array("b","c","d","a");
sort($array);//
print_r($array);
echo "
";
rsort($array);//
print_r($array);
?>
:
Array ( [0] => a [1] => b [2] => c [3] => d )
Array ( [0] => d [1] => c [2] => b [3] => a )
sort()、rsort() は を くから く べ え、 をbool に す.
asort()、arsort() は、キー を するソートであり、ソート のキー は インデックスされません.
2: を す――shuffle() :
$array = array("a","b","c","d");
shuffle($array);//
print_r($array);
?>
は、 です.
Array ( [0] => c [1] => a [2] => d [3] => b )
shuffleの は しランダムな で、リフレッシュするたびに います.
3:array_reverse() の :
$array = array("d","b","a","c");
$array = array_reverse($array);//
print_r($array);
?>
:
Array ( [0] => c [1] => a [2] => b [3] => d )
4: ソートアルゴリズム――natsort()とnatcasesort();
$array = array("sort2","Sort5","sort1","sort4");
natsort($array);//
print_r($array);
echo "
";
natcasesort($array);
print_r($array);
?>
:
Array ( [1] => Sort5 [2] => sort1 [0] => sort2 [3] => sort4 )
Array ( [2] => sort1 [0] => sort2 [3] => sort4 [1] => Sort5 )
natsort(),natcasesort() を にソートすることは, を いた のソートアルゴリズムである.natcasesortでは と は されます.
5: のキー ソートksort()
$array = array(1=>"sort2",4=>"Sort5",2=>"sort1",3=>"sort4");
ksort($array);//
print_r($array);
?>
:
Array ( [1] => sort2 [2] => sort1 [3] => sort4 [4] => Sort5 )
:ksort() はインデックスを しました.
8. のその の い
cout($array) --------
array_diff($array1,$array2)---------- , 。
array_diff_assoc($array1,$array2)--------- array_diff(),
array_diff_key($array1,$array2)------------
array_product($array)-----------
array_sum($array)--------------
array_rand($array,$n)---------- $array $n ,
array_intersect($array1,$array2)----------------
array_intersect_assoc($array1,$array2)--------------- array_intersect
array_intersect_key($array1,$array2)-----------------
まとめ
の はPHPにおいて めて であり,PHPにはポインタがないため, は きなデータ タスクを う. をマスターして、やっとPHPを するのが えがあって、ここに するのはすべてよく うPHP の する と い で、いっしょに ぶことを します!