Dieser Artikel fasst hauptsächlich die grundlegendsten Wissenspunkte zu PHP-Array-Funktionen zusammen.
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 – enthält a Oder ein Array aus mehreren Arrays
1. Erstellen Sie ein Array
array(key => value)
1. Erstellen Sie ein Index-Array
Verwenden Sie die Funktion array(), um ein Array zu deklarieren. 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 es sich um assoziierte Arrays handelt, die nicht nur Zahlen wie die Schlüsselnamen von Indexarrays sein können. Sie können Zahlen, Zeichenfolgen und gemischte Formen sein. Die Grundlage für die Beurteilung, ob ein Array ein assoziatives Array ist, ist: ob es einen Schlüsselnamen im Array gibt das ist keine Zahl. Nein, es hängt zusammen.
array("Robin Li" => "Baidu", "Jack Ma" => "Alibaba", "Ma Huateng" => "Tencent"); Mehrdimensionales Array
array(array(),array()) Zweidimensionales Array
Ermitteln Sie die Länge des Arrays – count()-Funktion<?php $arr = array("百度","阿里","腾讯"); echo count($arr); ?> //结果返回3(说明数组中有三个元素)
2. Durchlaufen Sie das Array
Geben Sie die Werte der Elemente 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 => $ value)-Schleife 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);
Array
( [0] => Baidu
[1] => Alibaba
[2] => Tencent
)
Foreach-Schleife verwenden
<?php $arr = array("百度","阿里","腾讯"); foreach ($arr as $value) { $data[] = $value; } echo "<pre class="brush:php;toolbar:false">"; //换行显示 print_r($data);//打印结果和上面一样
2. Durchlaufen Sie das assoziative Array
Um alle Werte des assoziativen Arrays zu durchlaufen und auszugeben, können Sie foreach (array_expression as key=> value)-Schleife wie folgt:
<?php $arr = array("李彦宏" => "百度","马云" => "阿里","马化腾" => "腾讯"); foreach ($arr as $key => $value) { $data[$key] = $value; } echo "<pre class="brush:php;toolbar:false">"; //换行显示 print_r($data);
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
Hinzufügen <🎜 am Ende des Array-Elements >array_push(array,value1,value2…) Die Funktion fügt ein oder mehrere Elemente (push) 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] => 微博 )
Inkremente am Anfang des Array-Elements
Die Funktion array_unshift(array,value1,value2,value3…) wird verwendet, um neue Elemente in das einzufügen Array. 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
array_pop(array)-Funktion 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] => 阿里 )
Löschen am Anfang des Array-Elements
array_shift(array)-Funktion löscht das erste Element im Array und kann den Wert des gelöschten Elements zurückgeben Element.<?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
array_unique(array)-Funktion entfernt doppelte Werte aus dem Array und gibt das resultierende Array zurück.<?php $arr = array("百度","阿里","腾讯","百度","微博"); $data = array_unique($arr); echo "<pre class="brush:php;toolbar:false">"; print_r($data); 打印结果显示: Array ( [0] => 百度 [1] => 阿里 [2] => 腾讯 [4] => 微博 )
Nach im Array vorhandenen Werten suchenin_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.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] => 知乎 )
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] => 腾讯 )
五、数组合并、拆分、比较
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('one'=>'C', 'one'=>'B'); $arr1= array('three'=>'1', 'one'=>'2'); $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('A', 'B'); $arr1= array('1', '2'); $arr2= array_combine($arr, $arr1); echo "<pre class="brush:php;toolbar:false">"; print_r($arr2); 打印结果显示: Array ( [A] => 1 [B] => 2 )
求数组的交集
array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下:
$arr= array('A', 'B', 'C', 'D'); $arr1= array('A', 'B', 'E'); $arr2= array('A', 'F', 'D'); $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('a'=>'A', 'b'=>'B', 'c'=>'C', 'd'=>'D'); $arr1= array('a'=>'A', 'c'=>'B', 'E'); $arr2= array('a'=>'A', 'b'=>'F', 'd'=>'B'); $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('a'=>'A', 'b'=>'B', 'c'=>'C', 'd'=>'D'); $arr1= array('a'=>'A', 'b'=>'B', 'e'=>'E'); $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('a'=>'A', 'b'=>'B', 'c'=>'C', 'd'=>'D'); $arr1= array_rand($arr, 2); echo "<pre class="brush:php;toolbar:false">"; print_r($arr1); 打印结果显示: Array ( [0] => c [1] => d ) //每次刷新显示的结果都不一样
对数组中的值求和
array_sum()函数将数组内的所有值加在一起,返回最终的和,其形式如下:
$arr= array('A', 32, 12, 'B'); $count= array_sum($arr); echo "<pre class="brush:php;toolbar:false">"; print_r($count);
打印结果显示:
44
如果数组中包含其他数据类型(例如字符串),这些值将被忽略。
划分数组
array_chunk()函数将数组分解为一个多维数组,这个多维数组由多个包含size个元素的数组所组成。其形式如下:
$arr= array('A', 'B', 'C', 'D'); $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*...) ……
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。
相关推荐:
Das obige ist der detaillierte Inhalt vonZusammenfassung der Grundkenntnisse der PHP-Array-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!