php中的数组函数学习记录2
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(1) [2]=> int(2) }
array(5) { [0]=> int(1) [1]=> string(2) "op" [2]=> string(3) "act" [3]=> int(2) [4]=> int(3) }
3、将回调函数作用到给定数组的单元上 array_map
用法:array_map(function,array1(array),array2...)感觉这个和过滤函数array_filter理解起来有点类似,array_map可以理解成是一个加工函数,加工方法自己写。
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(8) [2]=> int(27) [3]=> int(64) [4]=> int(125) }
4、合并一个或多个数组—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"]=> string(1) "R" ["act"]=> string(6) "python" [1]=> string(3) "php" [2]=> string(5) "redis" [3]=> string(2) "sd" [4]=> string(2) "wd" [5]=> string(2) "gh" }
重新索引后键值java的键名由1变成了0
5、递归地合并一个或多个数组——array_merge_recursive
用法:和array_merge一样,只是array_merge是求并集,而array_merge_recursive是实实在在的1+1=2,键值重复不会覆盖,键名重复会自动的合并
$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));
结果:array(4) { ["color"]=> array(2) { ["favorite"]=> array(2) { [0]=> string(3) "red" [1]=> string(5) "green" } [0]=> string(4) "blue" } [0]=> int(5) [1]=> int(10) [2]=> int(10) }
6、对多个数组或多维数组进行排序 -array_multisort
用法:array_multisort(array1,array2...),成功时返回 TRUE, 或者在失败时返回 FALSE.
$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);
结果:
array(4){ [0]=> string(2) "10" [1]=> string(1) "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) 返回填充的结果
$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'));
结果:
array(6) { [0]=> int(10) [1]=> int(20) [2]=> int(30) [3]=> string(2) "40" [4]=> string(2) "40" [5]=> string(2) "40" }
array(4) { ["java"]=> array(2) { [0]=> string(5) "redis" [1]=> string(5) "mysql" } [0]=> string(5) "shell" [1]=> string(5) "shell" [2]=> string(5) "shell" }
8、将数组最后一个单元弹出(出栈)——array_pop
用法:array_pop($input(array)) 返回数组的最后一个单元,如果 array 为空(或者不是数组)将返回 NULL。
$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(30) int(2)(数组长度减1) NULL
9、计算数组中所有值的乘积——array_product
用法:array_product($array),(要求数组中都是数字)
$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));
结果:int(6000) int(0) int(4000)
10、将一个或多个单元压入数组的末尾(入栈)——array_push
用法:array_push($array,mixed.....)这个是和array_pop出栈相对应的逐个追加到尾部,返回数组的个数
$array1=array(10,20,30);<br />var_dump(array_push($array1,'erer','weert'));<br />var_dump($array1);
结果:int(5) array(5) { [0]=> int(10) [1]=> int(20) [2]=> int(30) [3]=> string(4) "erer" [4]=> string(5) "weert" }
11、从数组中随机取出一个或多个单元——array_rand
用法:array_rand($array,$num_rep(int)) 随机从数组中取出多个单元(返回的是键名)
$array1=array(10,20,30,40,50,60);<br />var_dump(array_rand($array1,3));
结果:array(3) { [0]=> int(0) [1]=> int(1) [2]=> 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,<参数>)参数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),
$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)

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Les longues URL, souvent encombrées de mots clés et de paramètres de suivi, peuvent dissuader les visiteurs. Un script de raccourcissement d'URL offre une solution, créant des liens concis idéaux pour les médias sociaux et d'autres plateformes. Ces scripts sont utiles pour les sites Web individuels

À la suite de son acquisition de haut niveau par Facebook en 2012, Instagram a adopté deux ensembles d'API pour une utilisation tierce. Ce sont l'API graphique Instagram et l'API d'affichage de base Instagram. En tant que développeur créant une application qui nécessite des informations à partir d'un

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Il s'agit de la deuxième et dernière partie de la série sur la construction d'une application React avec un back-end Laravel. Dans la première partie de la série, nous avons créé une API RESTful utilisant Laravel pour une application de liste de base sur le produit. Dans ce tutoriel, nous serons Dev

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

L'enquête sur le paysage PHP 2025 étudie les tendances actuelles de développement du PHP. Il explore l'utilisation du cadre, les méthodes de déploiement et les défis, visant à fournir des informations aux développeurs et aux entreprises. L'enquête prévoit la croissance de la PHP moderne versio
