Maison développement back-end tutoriel php php中的数组函数学习记录2

php中的数组函数学习记录2

Jun 23, 2016 pm 01:13 PM

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));
Copier après la connexion

结果: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));
Copier après la connexion

结果: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));
Copier après la connexion

结果: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));
Copier après la connexion

结果: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));
Copier après la connexion

结果: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);
Copier après la connexion

结果:

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'));
Copier après la connexion

结果:

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));
Copier après la connexion

结果: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));
Copier après la connexion

结果: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);
Copier après la connexion

结果: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));
Copier après la connexion

结果: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 />
Copier après la connexion

结果: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 />
Copier après la connexion

结果: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));
Copier après la connexion

结果: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));
Copier après la connexion

结果: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);
Copier après la connexion

结果: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),),如果加上参数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));
Copier après la connexion

结果: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);
Copier après la connexion

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));
Copier après la connexion

结果:int(20) float(6.9)

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Apr 06, 2025 am 12:02 AM

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Comment déboguer le mode CLI dans phpstorm? Comment déboguer le mode CLI dans phpstorm? Apr 01, 2025 pm 02:57 PM

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

See all articles