Zusammenfassung der Grundkenntnisse der PHP-Array-Funktionen

墨辰丷
Freigeben: 2023-03-29 14:22:01
Original
1261 Leute haben es durchsucht

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] = "腾讯";
Nach dem Login kopieren

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(说明数组中有三个元素)
Nach dem Login kopieren

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);
Nach dem Login kopieren

Das Druckergebnis wird wie folgt angezeigt :

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);//打印结果和上面一样
Nach dem Login kopieren

Hinweis: Nach den Daten steht ein Array-Symbol [], warum?

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);
Nach dem Login kopieren

Das gedruckte Ergebnis zeigt:


Array
(
  [李彦宏] => 百度
  [马云] => 阿里
  [马化腾] => 腾讯
)
Nach dem Login kopieren

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] => 微博
)
Nach dem Login kopieren

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] => 腾讯
)
Nach dem Login kopieren

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] => 阿里
)
Nach dem Login kopieren

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] => 腾讯
)
Nach dem Login kopieren

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 dem Login kopieren

4. Array-Elemente positionieren

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;
} //输出已经找到
Nach dem Login kopieren

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] => 知乎
)
Nach dem Login kopieren

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] => 腾讯
)
Nach dem Login kopieren

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

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] => 微博
)
Nach dem Login kopieren

递归追加数组
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
)
Nach dem Login kopieren

合并两个数组
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
)
Nach dem Login kopieren

求数组的交集
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
)
Nach dem Login kopieren

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

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

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

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

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

打印结果显示:

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

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

)
Nach dem Login kopieren

处理数组时可调用函数有

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*...)
……
Nach dem Login kopieren

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

相关推荐:

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

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

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

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!