Heim  >  Artikel  >  php教程  >  Zusammenfassung der Kenntnisse über PHP-Array-Funktionen

Zusammenfassung der Kenntnisse über PHP-Array-Funktionen

高洛峰
高洛峰Original
2017-01-03 14:22:101417Durchsuche

In diesem Artikel werden die Grundkenntnisse der PHP-Array-Funktionen als Referenz vermittelt. Der spezifische Inhalt lautet wie folgt:

Array ist ein sehr wichtiger Datentyp. Im Vergleich zu anderen Datentypen ähnelt es eher einer Struktur, und diese Struktur kann eine Reihe von Werten speichern. Arrays können viele Werte in einem einzigen Variablennamen speichern, und auf einen Wert kann durch Verweisen auf einen Index zugegriffen werden.
In PHP gibt es drei Array-Typen:
Indiziertes Array – ein Array mit einem numerischen Index
Assoziatives Array – ein Array mit einem angegebenen Schlüssel
Mehrdimensionales Array – ein Array, das ein oder mehrere Arrays enthält

1. Erstellen Sie ein Array

array(key => value)

1. Erstellen Sie ein Index-Array

Verwenden Sie die Funktion array() Deklarationsarray. PHP ist eine schwach typisierte Sprache, die relativ flexibel und praktisch ist. Sie kann auch direkt dem Elementwert eines Arrays zugewiesen werden (der Index beginnt bei 0).
Beispiel:

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

2. Erstellen Sie ein assoziatives Array

Assoziative Arrays ähneln Index-Arrays, außer dass assoziative Arrays nicht nur Zahlen wie die Schlüsselnamen von Index-Arrays sein können. Es kann ein numerischer Wert, eine Zeichenfolge oder eine gemischte Form sein. Die Grundlage für die Beurteilung, ob ein Array ein assoziatives Array ist, ist: ob es einen Schlüsselnamen im Array gibt, der keine Zahl ist. Nein, es hängt zusammen.

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

3 🎜>

array(array(),array()) Zweidimensionales Array

Ermitteln Sie die Länge des Arrays – count()-Funktion

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

Gibt den Wert des Elements im Array aus. Für Index-Arrays werden üblicherweise for und foreach verwendet; für assoziative Arrays wird üblicherweise foreach verwendet. Verwenden Sie die Funktion print_r(), um die Ergebnisse nach der Schleife zu drucken, oder var_dump().

1. Durchlaufen Sie das Indexarray

Durchlaufen Sie alle Werte des Indexarrays und geben Sie sie aus. Sie können for, foreach(array_expression as value), foreach(arrayexpressionaskey => $) verwenden value) Schleifen wie folgt:

For-Schleife verwenden

<?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);
Das Druckergebnis wird wie folgt angezeigt:

Array
(
[0] => Baidu
[1] => Ali
[2] => Tencent
)
Foreach-Schleife verwenden

<?php
$arr = array("百度","阿里","腾讯");
foreach ($arr as $value) {
  $data[] = $value;
}
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($data);//打印结果和上面一样
Hinweis: Nach den Daten steht ein Array-Symbol []. , Warum?

2. Das assoziative Array durchlaufen

Um alle Werte des assoziativen Arrays zu durchlaufen und auszugeben, können Sie die foreach-Schleife (array_expression as key=>value) wie folgt verwenden :

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

Array
(
  [李彦宏] => 百度
  [马云] => 阿里
  [马化腾] => 腾讯
)
Haben Sie es bemerkt? Was ist zu diesem Zeitpunkt, nachdem die Daten [$key] sind? Anstelle von []

einem zahlenassoziativen Array ist das andere ein numerisches Indexarray,

3. Elemente des Arrays hinzufügen und löschen

Add

array_push(array, value1 ) am Ende des Array-Elements (Wert2…) Die Funktion fügt ein oder mehrere Elemente (auf den Stapel verschoben) am Ende des Arrays des ersten Parameters hinzu und gibt die Länge des neuen Arrays zurück.
Diese Funktion entspricht dem mehrmaligen Aufruf von array[]=value.

<?php
$arr = array("百度","阿里","腾讯");
array_push($arr,"知乎","微博");
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
//打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
  [2] => 腾讯
  [3] => 知乎
  [4] => 微博
)
Am Anfang des Array-Elements hinzufügen

Die Funktion array_unshift(array, value1, value2, value3...) wird verwendet, um neue Elemente in das Array einzufügen. Die Werte des neuen Arrays werden am Anfang des Arrays eingefügt.

<?php
$arr = array("百度","阿里","腾讯");
array_unshift($arr,"知乎","微博");
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
//打印结果显示:
Array
(
  [0] => 知乎
  [1] => 微博
  [2] => 百度
  [3] => 阿里
  [4] => 腾讯
)
Am Ende des Array-Elements löschen

Die Funktion array_pop(array) löscht das letzte Element im Array.

<?php
$arr = array("百度","阿里","腾讯");
array_pop($arr);
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
打印结果显示:
Array
(
  [0] => 百度
  [1] => 阿里
)
Am Anfang des Array-Elements löschen

Die Funktion array_shift(array) löscht das erste Element im Array und kann den Wert des gelöschten Elements zurückgeben.

<?php
$arr = array("百度","阿里","腾讯");
array_shift($arr);
echo "<pre class="brush:php;toolbar:false">"; //换行显示
print_r($arr);
打印结果显示:
Array
(
  [0] => 阿里
  [1] => 腾讯
)
Doppelte Werte aus dem Array entfernen

Die Funktion array_unique(array) entfernt doppelte Werte aus dem Array und gibt das Ergebnisarray zurück.

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

Nach im Array vorhandenen Werten suchen

in_array(search,array,type) prüft, ob der angegebene Wert im Array vorhanden ist.
Gibt „true“ zurück, wenn die angegebene Wertsuche im Array-Array vorhanden ist. Wenn der dritte Parameter auf „true“ gesetzt ist, gibt die Funktion nur dann „true“ zurück, wenn das Element im Array vorhanden ist und denselben Datentyp wie der angegebene Wert hat. Wenn der Parameter nicht im Array gefunden wird, gibt die Funktion „false“ zurück.

<?php
$arr = array("百度","阿里","腾讯");
while (in_array("百度", $arr)) {
  echo "已经找到";
  break;
} //输出已经找到
Entfernen Sie einen Wert aus dem Array basierend auf den Bedingungen: array_slice(array,start,length,preserve)

start ist erforderlich. Zahlenwert. Gibt die Startposition des abzurufenden Elements an. 0 = erstes Element.
Wenn der Wert auf eine positive Zahl eingestellt ist, wird er von vorne nach hinten genommen.
Wenn der Wert auf eine negative Zahl eingestellt ist, wird der absolute Wert von Start von hinten nach vorne genommen. -2 bedeutet, dass mit dem vorletzten Element des Arrays begonnen wird.

Länge optional. Zahlenwert. Gibt die Länge des zurückgegebenen Arrays an.

Wenn der Wert auf eine Ganzzahl festgelegt ist, wird diese Anzahl an Elementen zurückgegeben.
Wenn dieser Wert auf eine negative Zahl gesetzt ist, beendet die Funktion den Abruf so weit vom Ende des Arrays entfernt.
Wenn dieser Wert nicht festgelegt ist, werden alle Elemente ab der durch den Startparameter festgelegten Position bis zum Ende des Arrays zurückgegeben.

<?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) Funktion entfernt das ausgewählte Element aus einem Array und ersetzt es durch ein neues Element. Diese Funktion gibt auch das Array zurück, das die entfernten Elemente enthält.

<?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. Arrays zusammenführen, aufteilen und vergleichen

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中文网!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn