ホームページ  >  記事  >  バックエンド開発  >  PHPでの配列関数学習記録2

PHPでの配列関数学習記録2

WBOY
WBOYオリジナル
2016-06-23 13:13:30881ブラウズ

1. 指定されたキー名またはインデックスが配列内に存在するかどうかを確認します - array_key_exists

使用法: array_key_exists($key(mixed),$input(array)) は TRUE と FALSE を返します

$input_array=array("1"=>"java","op"=>"R","act"=>"python","php","redis");<br />$array=array("sd","wd","gh");<br />var_dump(array_key_exists(1,$array));<br />var_dump(array_key_exists("op",$input_array));

結果: bool( true) bool(true)

2. 配列内のすべてのキー名を返します—array_keys

使用法: array_keys($input(array)) 配列内のキー名を返します

$input_array=array("1"=>"java","op"=>"R","act"=>"python","php","redis");<br />$array=array("sd","wd","gh");<br />var_dump(array_keys($array));<br />var_dump(array_keys($input_array));

結果: array(3) { [0 ]=> int(0) [1]=> int(2) }

array(5) { [0]=> => string(2) "op" => string(3) "act" [3] => int(3) }

3.関数は、指定された配列のセルに作用します array_map

使用法: array_map(function,array1(array),array2...) これは、フィルター関数 array_filter に似ていると感じます。array_filter は、処理関数として理解できます。処理方法は自分で記述してください。

function cube($n){<br />    return($n * $n * $n);<br />}<br />$a = array(1, 2, 3, 4, 5);<br />var_dump(array_map("cube", $a));

結果: array(5){ [0]=> int(1) [1]=> int(27) [3]=> [4]=> int(125) }

4. 1 つ以上の配列をマージします—array_merge (つまり、結合を見つけます)

構文: ある配列の値を別の配列に追加します。数値インデックス、キー名は継続的に再インデックスされます

$input_array=array("1"=>"java","op"=>"R","act"=>"python","php","redis");<br />$array=array("sd","wd","gh");<br />var_dump(array_merge($input_array,$array));

結果: array(8) {[0]=> string(4) "java" ["op"]=> "R" ["act "]=> 文字列(6) "Python" [1]=> 文字列(3) "php" [2]=> 文字列(5) "redis" [3]=> string(2) "sd " [4]=> string(2) "wd" [5]=> string(2) "gh" }

再インデックス後、キー値 java のキー名が変更されました1 から 0 まで

5. 1 つ以上の配列を再帰的にマージします - array_merge_recursive

使用法: array_merge が共用体であり、array_merge_recursive が実数の 1+1=2 であることを除いて、array_merge と同じです。重複したキー名は上書きされず、自動的にマージされます

$ar1 = array("color" => array("favorite" => "red"), 5,10);<br />$ar2 = array(10, "color" => array("favorite" => "green", "blue"));<br />var_dump(array_merge_recursive($ar1, $ar2));

Result: array(4) { ["color"]=> array(2) { [0 ]=> 文字列(3) "赤" [1]=> 文字列(5) "緑" } [0]=> int; 1]=> int(10 ) [2]=> int(10) }

6. 複数の配列または多次元配列をソートする - array_multisort

使用法: array_multisort(array1, array2...), return

成功した場合は TRUE、失敗した場合は FALSE を返します。 a" [2]=> int(100) [3]=> int(101) } array(4) { [0]=> int(1) [1]=> int(1) [2] ]=> string(1 ) "2" [3]=> int(3) }

7. 配列に指定された長さの値を入力します - array_pad

使用法: array_pad($input(array) ),$size(int),mixed ) 埋め込まれた結果を返します


$ar1 = array("10", 101, 100, "a");<br />$ar2 = array(1, 3, "2", 1);<br />array_multisort($ar1, $ar2);<br />var_dump($ar1);<br />var_dump($ar2);

Result:

array(6) { [0]=> int(10) [1]=> => int(30) [3]=> 文字列(2) "40" [5]=> 文字列(2) "40" }配列(4) { ["java" ]=> 配列(2) { [0]=> 文字列(5) "redis" [1]=> 文字列(5) "mysql" } ; string(5) "shell" [ 1]=> string(5) "shell" [2]=> string(5) "shell" }


8. 配列の最後のユニットをポップします。 stack) - array_pop

使用法: array_pop($ input(array)) は配列の最後の要素を返します。配列が空の場合 (または配列でない場合)

NULL

を返します。

$array1=array(10,20,30);<br />$array2=array('java'=>array('redis','mysql'));<br />var_dump(array_pad($array1,6,'40'));<br />var_dump(array_pad($array2,4,'shell'));

結果: int(30) int(2)(配列の長さ - 1) NULL

9. 配列内のすべての値の積を計算します - array_product

使用法: array_product($array), (それが必要です)配列内のすべての値は Number)

$array1=array(10,20,30);<br />$array2=array();<br />var_dump(array_pop($array1));<br />var_dump(count($array1));<br />var_dump(array_pop($array2));
結果: int(6000) int(0) int(4000)

10. 1 つ以上のセルを配列の末尾にプッシュします (プッシュ) - array_push

使用法: array_push($array,mixed....) これをスタックから飛び出したarray_popに対応して最後に一つずつ追加して配列の数を返します

$array1=array(10,20,30);<br />$array2=array(1,'er');<br />$array3=array(10,20,30=>20);<br />var_dump(array_product($array1));<br />var_dump(array_product($array2));<br />var_dump(array_product($array3));

Result: int(5) array(5) { [ 0]=> int(10) [2]=> int(30) [3]=> 5) "weert" }

11 、配列から 1 つ以上のユニットをランダムに削除します - array_rand

使用法: array_rand($array,$num_rep(int)) 配列から複数のユニットをランダムに削除します (キー名が返されます)

結果: array(3) { [0]=> int(0) [1]=> int(4)}

12.配列を単一の値に反復的に単純化します - array_reduce

用法:array_reduce($input(array),function,int),将回调函数 function 迭代地作用到 input 数组中的每一个单元中,从而将数组简化为单一的值。如果指定了可选参数 initial,该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值

function rsum($v, $w){<br />    $v += $w;<br />    return $v;}<br />function rmul($v, $w){<br />    $v *= $w;<br />    return $v;}<br />$a = array(1, 2, 3, 4, 5);<br />$x = array();<br />var_dump(array_reduce($a, "rsum"));<br />var_dump(array_reduce($a, "rmul", 10));<br />var_dump(\array_reduce($x, "rsum", 1));<br />

结果:int(15) int(1200) int(1)

13、使用传递的数组递归替换第一个数组的元素——array_replace_recursive

用法:array_replace_recursive(array1,array2,array3....)使用后面数组元素的值替换第一个数组 array 的值。如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。如果一个键仅存在于第一个数组,它将保持不变。如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。

14、使用传递的数组替换第一个数组的元素——array_replace

用法:array_replace(array1,array2,......)函数使用后面数组元素的值替换第一个 array 数组的值。如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。如果一个键仅存在于第一个数组,它将保持不变。如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。

$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );<br />$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));<br />$basket = array_replace_recursive($base, $replacements);<br />print_r($basket);<br />$basket = array_replace($base, $replacements);<br />print_r($basket);<br />

结果:Array ( [citrus] => Array ( [0] => pineapple ) [berries] => Array ( [0] => blueberry [1] => raspberry ) )

Array([citrus] => Array ( [0] => pineapple ) [berries] => Array ( [0] => blueberry ) )

15、返回一个单元顺序相反的数组——array_reverse

用法:array_reverse($array,eca5f45643cdcf8ad4285470521b89fd)参数TRUE为保留原来的键名

$input  = array("php", 4.0, array("green", "red"),'a'=>'b');<br />var_dump(array_reverse($input));<br />var_dump(array_reverse($input, TRUE));

结果:array(4) { ["a"]=> string(1) "b" [0]=> array(2) { [0]=> string(5) "green" [1]=> string(3) "red" } [1]=> float(4) [2]=> string(3) "php" }

array(4) { ["a"]=> string(1) "b" [2]=> array(2) { [0]=> string(5) "green" [1]=> string(3) "red" } [1]=> float(4) [0]=> string(3) "php" }

16、在数组中搜索给定的值,如果成功则返回相应的键名——array_search,失败返回FALSE

用法:array_search(mixed,$array)

$input  = array(1=>"php", 2=>'java',3=>'mysql','a'=>'b');<br />var_dump(array_search('php',$input));<br />var_dump(array_search('b',$input));

结果:int(1)  string(1) "a"

17、将数组开头的单元移出数组——array_shift      作用类似于指针

用法:array_shift(array);将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。如果 array 为空(或者不是数组),则返回 NULL

$input  = array(1=>"php", 2=>'java',3=>'mysql','a'=>'b');<br />var_dump(array_shift($input));<br />var_dump($input);

结果:string(3) "php"

array(3) { [0]=> string(4) "java" [1]=> string(5) "mysql" ["a"]=> string(1) "b" }

18、从数组中取出一段——array_slice

用法:array_slice(array,offset(int),length(int),1b9af75f3d41344ac495f11a831fc893),如果加上参数TRUE不会重制数组的键

$input = array("a", "b", "c", "d", "e");<br />print_r(array_slice($input, 2, -1));<br />print_r(array_slice($input, 2, -1, true));

结果:Array ( [0] => c [1] => d ) Array ( [2] => c [3] => d )

19、把数组中的一部分去掉并用其它值取代 ——array_splice

array_splice($input(array),$offset(int),$length(int),$replace(array))

把 input 数组中由 offset 和 length 指定的单元去掉,如果提供了 replacement 参数,则用 replacement 数组中的单元取代。返回一个包含有被移除单元的数组。注意 input 中的数字键名不被保留。如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除。如果 offset 为负,则从 input 末尾倒数该值指定的偏移量开始移除。

如果省略 length,则移除数组中从 offset 到结尾的所有部分。如果指定了 length 并且为正值,则移除这么多单元。如果指定了 length 并且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的单元。小窍门:当给出了 replacement 时要移除从 offset 到数组末尾所有单元时,用 count($input) 作为 length。

如果给出了 replacement 数组,则被移除的单元被此数组中的单元替代。如果 offset 和 length 的组合结果是不会移除任何值,则 replacement 数组中的单元将被插入到 offset 指定的位置。注意替换数组中的键名不保留。如果用来替换的值只是一个单元,那么不需要给它加上 array(),除非该单元本身就是一个数组。

<?php<br />$input1 = array("red", "green", "blue", "yellow");<br />array_splice($input1, 2);<br />var_dump($input1);<br />$input2 = array("red", "green", "blue", "yellow");<br />array_splice($input2, 1, -1);<br />var_dump($input2);<br />$input3 = array("red", "green", "blue", "yellow");<br />array_splice($input3, 1, count($input3), "orange");<br />var_dump($input3);<br />$input4 = array("red", "green", "blue", "yellow");<br />array_splice($input4, -1, 1, array("black", "maroon"));<br />var_dump($input4);<br />$input5 = array("red", "green", "blue", "yellow");<br />array_splice($input5, 3, 0, "purple");<br />var_dump($input5);

array(2) { [0]=> string(3) "red" [1]=> string(5) "green" }

array(2) { [0]=> string(3) "red" [1]=> string(6) "yellow" }

array(2) { [0]=> string(3) "red" [1]=> string(6) "orange" }

array(5) { [0]=> string(3) "red" [1]=> string(5) "green" [2]=> string(4) "blue" [3]=> string(5) "black" [4]=> string(6) "maroon" }

array(5) { [0]=> string(3) "red" [1]=> string(5) "green" [2]=> string(4) "blue" [3]=> string(6) "purple" [4]=> string(6) "yellow" }

20、计算数组中所有值的和——array_sum

用法:array_num(array)(number)

<?php<br />$a = array(2, 4, 6, 8);<br />$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);<br />var_dump(array_sum($a));<br />var_dump(array_sum($b));

结果:int(20) float(6.9)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。