Résumé des connaissances de base des fonctions de tableau PHP

墨辰丷
Libérer: 2023-03-29 14:22:01
original
1261 Les gens l'ont consulté

Cet article résume principalement les points de connaissances les plus élémentaires sur les fonctions de tableau PHP. Les amis intéressés peuvent se référer à

Le tableau est un type de données très important. Par rapport à d’autres types de données, cela ressemble davantage à une structure, et cette structure peut stocker une série de valeurs. Les tableaux peuvent stocker de nombreuses valeurs dans un seul nom de variable, et une valeur est accessible en référençant un indice.

En PHP, il existe trois types de tableaux :
Tableau indexé - un tableau avec un index numérique
Tableau associatif - un tableau avec une clé spécifiée
Tableau multidimensionnel - contient un Ou un tableau de plusieurs tableaux

1. Créez un tableau

array(key => value)

1. Créez un tableau d'index

Utilisez la fonction array() pour déclarer un tableau. PHP est un langage faiblement typé, relativement flexible et pratique. Il peut également s'agir directement de la valeur d'un élément d'un tableau. Aucune clé n'est nécessaire. L'index est automatiquement attribué (l'index commence à 0).
Exemple :

array("1" => "百度","2" => "阿里","3" => "腾讯");
或者是不使用键值:
array("百度","阿里","腾讯");
当然也可以写成:
$arr[0] = "百度";
$arr[1] = "阿里";
$arr[2] = "腾讯";
Copier après la connexion

2. Créer un tableau associatif

Les tableaux associatifs sont similaires à l'index. C'est juste qu'un tableau associatif ne peut pas être uniquement composé de nombres comme le nom de clé d'un tableau d'index. Il peut s'agir d'une valeur numérique, d'une chaîne ou d'une forme mixte. La base pour juger si un tableau est un tableau associatif est : il y a un nom de clé dans le tableau qui n'est pas un nombre. Non, c'est lié.

array("Robin Li" => "Baidu", "Jack Ma" => "Alibaba", "Ma Huateng" => "Tencent"); Tableau multidimensionnel

array(array(),array()) Tableau bidimensionnel

Obtenir la longueur du tableau - fonction count()

<?php
$arr = array("百度","阿里","腾讯");
echo count($arr);
?> //结果返回3(说明数组中有三个元素)
Copier après la connexion

2. Parcourez le tableau

Sortez les valeurs des éléments du tableau. Pour les tableaux d'index, for et foreach sont couramment utilisés ; pour les tableaux associatifs, foreach est couramment utilisé. Utilisez la fonction print_r() pour imprimer les résultats après la boucle, ou var_dump().

1. Parcourez le tableau d'index

Parcourez et affichez toutes les valeurs du tableau d'index, vous pouvez utiliser for, foreach(array_expression as value), foreach( arrayexpressionaskey => $ value), comme suit :

Utiliser la boucle for


<?php
$arr = array("百度","阿里","腾讯");
$arrlen = count($arr);//获取数组的长度
for ($i=0; $i <$arrlen ; $i++) { 
  $data[] = $arr[$i]; 
}
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($data);
Copier après la connexion
Le résultat imprimé est le suivant suit :

Array

(

[0] => Baidu
[1] => Alibaba
[2] => Tencent
)
Utiliser la boucle foreach



<?php
$arr = array("百度","阿里","腾讯");
foreach ($arr as $value) {
  $data[] = $value;
}
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($data);//打印结果和上面一样
Copier après la connexion
Remarque : Il y a un symbole de tableau [] après les données. Pourquoi ?

2. Parcourez le tableau associatif

Pour parcourir et afficher toutes les valeurs du tableau associatif, vous pouvez utiliser le foreach (array_expression as key=> valeur), comme suit :

<?php
$arr = array("李彦宏" => "百度","马云" => "阿里","马化腾" => "腾讯");
foreach ($arr as $key => $value) {
  $data[$key] = $value;
}
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($data);
Copier après la connexion
Le résultat imprimé montre :


Array
(
  [李彦宏] => 百度
  [马云] => 阿里
  [马化腾] => 腾讯
)
Copier après la connexion
Vous avez remarqué ? À l'heure actuelle, qu'y a-t-il après que les données soient [$key] ? Au lieu de []

un tableau associatif de nombres, l'autre est un tableau d'index numérique,


3. Ajouter et supprimer des éléments du tableau

Ajouter <🎜 à la fin de l'élément du tableau >array_push(array,value1,value2…) La fonction ajoute un ou plusieurs éléments (push) à la fin du tableau du premier paramètre et renvoie la longueur du nouveau tableau. Cette fonction équivaut à appeler array[]=value plusieurs fois.



Incréments au début de l'élément du tableau
<?php
$arr = array("百度","阿里","腾讯");
array_push($arr,"知乎","微博");
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
//打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
  [4] => 微博
)
Copier après la connexion
La fonction array_unshift(array,value1,value2,value3…) est utilisée pour insérer de nouveaux éléments dans le tableau. Les valeurs du nouveau tableau seront insérées au début du tableau.


Supprimer à la fin de l'élément du tableau
<?php
$arr = array("百度","阿里","腾讯");
array_unshift($arr,"知乎","微博");
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
//打印结果显示:
Array
(
  [0] => 知乎
  [1] => 微博
  [2] => 百度
  [3] => 阿里
  [4] => 腾讯
)
Copier après la connexion
La fonction array_pop(array) supprime le dernier élément du tableau.


Supprimer au début de l'élément du tableau
<?php
$arr = array("百度","阿里","腾讯");
array_pop($arr);
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
)
Copier après la connexion
La fonction array_shift(array) supprime le premier élément du tableau et peut renvoyer la valeur de l'élément supprimé.


Supprimer les valeurs en double du tableau
<?php
$arr = array("百度","阿里","腾讯");
array_shift($arr);
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
打印结果显示:
Array
(
  [0] => 阿里
  [1] => 腾讯
)
Copier après la connexion
La fonction array_unique(array) supprime les valeurs en double du tableau et renvoie le tableau résultant .


<?php
$arr = array("百度","阿里","腾讯","百度","微博");
$data = array_unique($arr);
echo "<pre class="brush:php;toolbar:false">";
print_r($data);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [4] => 微博
)
Copier après la connexion
4. Positionnement des éléments du tableau

Rechercher des valeurs existantes dans le tableau in_array(search,array,type) vérifie si la valeur spécifiée existe dans le tableau. Renvoie vrai si la valeur de recherche donnée existe dans le tableau tableau. Si le troisième paramètre est défini sur true, la fonction renvoie true uniquement si l'élément existe dans le tableau et a le même type de données que la valeur donnée. Si le paramètre n'est pas trouvé dans le tableau, la fonction renvoie false.



Supprimer une valeur du tableau en fonction des conditions : array_slice(array,start,length,preserve)
<?php
$arr = array("百度","阿里","腾讯");
while (in_array("百度", $arr)) {
  echo "已经找到";
  break;
} //输出已经找到
Copier après la connexion
start est requis. valeur numérique. Spécifie la position de départ de l'élément à récupérer. 0 = premier élément.

Si la valeur est définie sur un nombre positif, elle sera prise d'avant en arrière.

Si la valeur est définie sur un nombre négatif, la valeur absolue du début est prise de l'arrière vers l'avant. -2 signifie commencer de l'avant-dernier élément du tableau.

length 可选。数值。规定被返回数组的长度。
如果该值设置为整数,则返回该数量的元素。
如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。
如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。

<?php
$arr = array("百度","阿里","腾讯","知乎","微博");
$data = array_slice($arr,0,4);
echo "<pre class="brush:php;toolbar:false">";
print_r($data);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
)
Copier après la connexion

array_splice(array,start,length,array) 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。

<?php
$arr1 = array("百度","阿里","腾讯");
$arr2 = array("知乎","微博");
array_splice($arr1,0,2,$arr2);
echo "<pre class="brush:php;toolbar:false">";
print_r($arr1);
打印结果显示:
Array
(
  [0] => 知乎
  [1] => 微博
  [2] => 腾讯
)
Copier après la connexion

五、数组合并、拆分、比较

array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次追加。

<?php
$arr1 = array("百度","阿里","腾讯");
$arr2 = array("知乎","微博");
$data = array_merge($arr1,$arr2);
echo "<pre class="brush:php;toolbar:false">";
print_r($data);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
  [4] => 微博
)
Copier après la connexion

递归追加数组
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并到一起,形成一个联合的数组。两者之间的区别在于,当某个输入数组中的某个键已经存在于结果数组中时该函数会采取不同的处理方法。array_merge()会覆盖前面存在的键/值对,将其替换为当前输入数组中的键/值对,而array_merge_recursive()将两个值合并在一起,形成一个新的数组并以原有的键作为数组名。其形式为:

$arr= array(&#39;one&#39;=>&#39;C&#39;, &#39;one&#39;=>&#39;B&#39;); 
$arr1= array(&#39;three&#39;=>&#39;1&#39;, &#39;one&#39;=>&#39;2&#39;); 
$arr2= array_merge_recursive($arr, $arr1); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr2); 
打印结果显示:
Array
(
  [one] => Array
    (
      [0] => B
      [1] => 2
    )

  [three] => 1
)
Copier après la connexion

合并两个数组
array_combine()函数会生成一个新数组,这个数组由一组提交的键和对应的值组成,其形式为:

$arr= array(&#39;A&#39;, &#39;B&#39;); 
$arr1= array(&#39;1&#39;, &#39;2&#39;); 
$arr2= array_combine($arr, $arr1);
echo "<pre class="brush:php;toolbar:false">";
print_r($arr2); 
打印结果显示:
Array
(
  [A] => 1
  [B] => 2
)
Copier après la connexion

求数组的交集
array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下:

$arr= array(&#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;); 
$arr1= array(&#39;A&#39;, &#39;B&#39;, &#39;E&#39;); 
$arr2= array(&#39;A&#39;, &#39;F&#39;, &#39;D&#39;); 
$arr3= array_intersect($arr, $arr1, $arr2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr3); 
打印结果显示:
Array
(
  [0] => A
)
Copier après la connexion

注意:只有在两个元素有相同的数据类型时,array_intersect()才会认为它们相等。

求关联数组的交集
array_intersect_assoc()与array_intersect()基本相同,只不过它在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才被返回到结果数组中。其形式如下:

$arr= array(&#39;a&#39;=>&#39;A&#39;, &#39;b&#39;=>&#39;B&#39;, &#39;c&#39;=>&#39;C&#39;, &#39;d&#39;=>&#39;D&#39;); 
$arr1= array(&#39;a&#39;=>&#39;A&#39;, &#39;c&#39;=>&#39;B&#39;, &#39;E&#39;); 
$arr2= array(&#39;a&#39;=>&#39;A&#39;, &#39;b&#39;=>&#39;F&#39;, &#39;d&#39;=>&#39;B&#39;); 
$arr3= array_intersect_assoc($arr, $arr1, $arr2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr3); 
打印结果显示:
Array
(
  [a] => A
)
Copier après la connexion

求关联数组的差集
函数array_diff_assoc()与array_diff()基本相同,只是它在比较时还考虑了数组的键,因此,只在第一个数组中出现而不在其他输入数组中出现的键/值对才会被返回到结果数组中。其形式如下:

$arr= array(&#39;a&#39;=>&#39;A&#39;, &#39;b&#39;=>&#39;B&#39;, &#39;c&#39;=>&#39;C&#39;, &#39;d&#39;=>&#39;D&#39;); 
$arr1= array(&#39;a&#39;=>&#39;A&#39;, &#39;b&#39;=>&#39;B&#39;, &#39;e&#39;=>&#39;E&#39;); 
$arr3= array_diff_assoc($arr, $arr1); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr3); 
打印结果显示:
Array
(
  [c] => C
  [d] => D
)
Copier après la connexion

其他有用的数组函数
返回一组随机的键 array_rand()函数将返回数组中的一个或多个键。其形式为:

$arr= array(&#39;a&#39;=>&#39;A&#39;, &#39;b&#39;=>&#39;B&#39;, &#39;c&#39;=>&#39;C&#39;, &#39;d&#39;=>&#39;D&#39;); 
$arr1= array_rand($arr, 2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr1);
打印结果显示:
 Array
(
  [0] => c
  [1] => d
) //每次刷新显示的结果都不一样
Copier après la connexion

对数组中的值求和
array_sum()函数将数组内的所有值加在一起,返回最终的和,其形式如下:

$arr= array(&#39;A&#39;, 32, 12, &#39;B&#39;); 
$count= array_sum($arr); 
echo "<pre class="brush:php;toolbar:false">";
print_r($count);
Copier après la connexion

打印结果显示:
44

如果数组中包含其他数据类型(例如字符串),这些值将被忽略。

划分数组
array_chunk()函数将数组分解为一个多维数组,这个多维数组由多个包含size个元素的数组所组成。其形式如下:

$arr= array(&#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;); 
$arr1= array_chunk($arr, 2); 
echo "<pre class="brush:php;toolbar:false">";
print_r($arr1);
Copier après la connexion

打印结果显示:

Array
(
  [0] => Array
    (
      [0] => A
      [1] => B
    )

  [1] => Array
    (
      [0] => C
      [1] => D
    )

)
Copier après la connexion

处理数组时可调用函数有

array_filter(*array*,*callbackfunction*);
array_intersect_uassoc(*array1*,*array2*,*array3*...,*myfunction*)
array_intersect_ukey(*array1*,*array2*,*array3*...,*myfunction*)
array_reduce(*array*,*myfunction*,*initial*)
array_walk(*array*,*myfunction*,*userdata*...)
……
Copier après la connexion

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

php中实现进程锁与多进程的方法

PHP+MariaDB数据库操作基本技巧备忘总结

php实现操纵mysqli数据库的方法

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!