Heim >Backend-Entwicklung >PHP-Tutorial >PHP中unset,array_splice删除数组中元素的区别_PHP

PHP中unset,array_splice删除数组中元素的区别_PHP

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-01 11:50:351161Durchsuche

如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排:

<&#63;php 
$arr = array('a','b','c','d');
unset($arr[1]);
print_r($arr);
&#63;>


结果是:

Array ( [0] => a [2] => c [3] => d )
 
那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice():

<&#63;php 
$arr = array('a','b','c','d'); 
array_splice($arr,1,1); 
print_r($arr); 
&#63;>

结果是:

Array ( [0] => a [1] => c [2] => d )
 
删除数组中特定元素

<&#63;php
$arr2 = array(1,3, 5,7,8);
foreach ($arr2 as $key=>$value)
{
  if ($value === 3)
    unset($arr2[$key]);
}
var_dump($arr2);
&#63;> 

补充删除空数组

实例:

<&#63;php
  $array = ('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e'=>"");
  array_filter($array);
  echo "<pre class="brush:php;toolbar:false">";
  print_r($array);
&#63;>


结果:

Array (
     [a] => abc
     [b] => bcd
     [c] => cde
    [d] => def
)

总结
 

array_splice()函数删除的话,数组的索引值也变化了。
unset()函数删除的话,数组的索引值没有变化。

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