Maison  >  Article  >  php教程  >  Résumé des connaissances sur les fonctions de tableau PHP

Résumé des connaissances sur les fonctions de tableau PHP

高洛峰
高洛峰original
2017-01-03 14:22:101414parcourir

Cet article partage les connaissances de base des fonctions de tableau PHP pour votre référence. Le contenu spécifique est le suivant

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 - un tableau contenant un ou plusieurs tableaux

1. Créez un tableau

array(key => value)

1. Créez un tableau d'index

Utilisez la fonction array(). tableau de déclaration. PHP est un langage faiblement typé, relativement flexible et pratique. Il peut également s'agir directement de la valeur de l'é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] = "腾讯";

2. Créez un tableau associatif

Les tableaux associatifs sont similaires aux tableaux d'index, sauf que les tableaux associatifs ne peuvent pas être uniquement des nombres comme les noms de clés des tableaux d'index. Il peut s'agir d'une valeur numérique, d'une chaîne ou d'une forme mixte. La base pour déterminer si un tableau est un tableau associatif est la suivante : il existe 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");

3. 🎜>

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

Obtenir la longueur du tableau - fonction count()

<?php
$arr = array("百度","阿里","腾讯");
echo count($arr);
?> //结果返回3(说明数组中有三个元素)
Parcourir le tableau.

Affiche la valeur de l'élément dans le 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);
Le résultat de l'impression est affiché comme suit :

Array
(
[0] => Baidu
[1] => Ali
[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);//打印结果和上面一样
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 la boucle foreach (array_expression as key=>value), comme suit :

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

Array
(
  [李彦宏] => 百度
  [马云] => 阿里
  [马化腾] => 腾讯
)
Avez-vous 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

array_push(array, value1 ) à la fin de l'élément du tableau, valeur2…) La fonction ajoute un ou plusieurs éléments (poussés sur la pile) à la fin du tableau du premier paramètre et renvoie la longueur du nouveau tableau.
Cette fonction équivaut à appeler array[]=value plusieurs fois.

<?php
$arr = array("百度","阿里","腾讯");
array_push($arr,"知乎","微博");
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
//打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
  [4] => 微博
)
Ajouter au début de l'élément du tableau

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.

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

La fonction array_pop(array) supprime le dernier élément du tableau.

<?php
$arr = array("百度","阿里","腾讯");
array_pop($arr);
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
)
Supprimer au début de l'élément du tableau

La fonction array_shift(array) supprime le premier élément du tableau et peut renvoyer la valeur de l'élément supprimé.

<?php
$arr = array("百度","阿里","腾讯");
array_shift($arr);
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
打印结果显示:
Array
(
  [0] => 阿里
  [1] => 腾讯
)
Supprimer les valeurs en double du tableau

La fonction array_unique(array) supprime les valeurs en double du tableau et renvoie le tableau résultat.

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

Rechercher les valeurs existant 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.

<?php
$arr = array("百度","阿里","腾讯");
while (in_array("百度", $arr)) {
  echo "已经找到";
  break;
} //输出已经找到
Supprimer une valeur du tableau en fonction des conditions : array_slice(array,start,length,preserve)

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.

longueur facultative. valeur numérique. Spécifie la longueur du tableau renvoyé.

Si la valeur est définie sur un entier, renvoie ce nombre d'éléments.
Si cette valeur est définie sur un nombre négatif, la fonction terminera la récupération aussi loin de la fin de l'exemple de tableau.
Si cette valeur n'est pas définie, tous les éléments commençant à la position définie par le paramètre start jusqu'à la fin du tableau sont renvoyés. La fonction

<?php
$arr = array("百度","阿里","腾讯","知乎","微博");
$data = array_slice($arr,0,4);
echo "<pre class="brush:php;toolbar:false">";
print_r($data);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
)
array_splice(array,start,length,array) supprime l'élément sélectionné d'un tableau et le remplace par un nouvel élément. Cette fonction renverra également le tableau contenant les éléments supprimés.

<?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] => 腾讯
)
5. Fusionner, diviser et comparer des tableaux

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] => 微博
)

递归追加数组 
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
)

合并两个数组 
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
)

求数组的交集 
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
)

注意:只有在两个元素有相同的数据类型时,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
)

求关联数组的差集 
函数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
)

其他有用的数组函数 
返回一组随机的键 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
) //每次刷新显示的结果都不一样

对数组中的值求和 
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);

打印结果显示:
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);

打印结果显示:

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

处理数组时可调用函数有

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*...)
……

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

更多PHP数组函数知识汇总相关文章请关注PHP中文网!

Déclaration:
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