js333 > 计算机互联网 > 与删除元素,删除数组中的元素实例程序

原标题:与删除元素,删除数组中的元素实例程序

浏览次数:127 时间:2019-10-02

增加数据元素有函数,array_push(),array_unshift()函数

删除数组指定元素

通过下面的例子来说明:

php 数组增加元素array_push 与删除元素 array_pop

一、在数组的末尾添加元素

 代码如下

 代码如下

array_pop ( array array)

1.array_push

<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,1,2));
?>

$arr = array(0, 1, 2, 3, 4);
$index = 2;
unset($arr[$index]);
echo count($arr);

array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL

使用方法

输出

if (empty($arr[$index])) {
    echo "arr[$index] is empty";
}

看看相关实例

 代码如下

Array ( [0] => Cat [1] => Horse )

print_r($arr);

<?php
$stack = array ("orange", "banana", "apple", "raspberry");
$fruit = array_pop ($stack);
print_r($stack);
?>

<?php
    $stack = array("orange", "banana");
    array_push($stack, "apple", "raspberry");
    print_r($stack);
?>
输出:
Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

几个函数用下来觉得array_search()比较实用

输出为:
4
arr[2] is empty
Array([0] => 0 [1] => 1 [3] => 3 [4] =>

array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。 array 的长度将增加入栈变量的数目。和如下效果相同: <?php
$array[] = $var;
?> 

2.$arr[]

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false

4)从上面的输出结果可以看到数组的长度是正常的,但是下标还是保持原来的,所以按照下标去获取元素就会出问题。另外此方法对key-value形式的数组是安全的。

<?php
$stack = array ("orange", "banana");
array_push ($stack, "apple", "raspberry");
print_r($stack);
?>
结果

使用方法

 代码如下

 

Array
(
   [0] => orange
   [1] => banana
   [2] => apple
   [3] => raspberry
)

<?php

$array = array('1', '2', '3', '4', '5');

如何安全的删除元素呢?可以使用array_splice函数。array_splice()的用途是删除原始数组中指定的一系列元素,并用其他值代替(如果指定),返回值是被删除的元素。

数组增加元素array_push 与删除元素 array_pop array_pop ( array array) array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。...

    $arr = array("orange", "banana");
    $arr[]='apple';
    print_r($arr);
?>

$del_value = 3;
unset($array[array_search($del_value , $array)]);//利用unset删除这个元素

 

这两种的效果是一样的

print_r($array);

 代码如下

注意:如果用 array_push() 来给数组增加一个单元,还不如用 $array[] = ,因为这样没有调用函数的额外负担。

输出

$arr = array(0, 1, 2, 3, 4);
$rtn = array_splice($arr, 2, 1);
echo count($arr);
print_r($arr);
print_r($rtn);

二、在数组开头插入元素

array('1', '2', '4', '5');

输出为:
4
Array
([0] => 0 [1] => 1 [2] => 3 [3] => 4)
Array([0] =>

1.array_unshift

从数组头删除值

2)如果想获取删除首位元素后的数组,则可以有两种方法:

使用方法

array_shift()函数删除并返回数组中找到的元素。其结果是,如果使用的是数值健,则所有相应的值都会下移,而使用关联键的数组不受影响。其形式为:

 代码如下

 代码如下

mixed array_shift(array array)

1、
$arr = array(0, 1, 2, 3, 4);
array_splice($arr, 0, 1);

<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
?>

下面的例子删除了$fruits数组中的第一个元素apple:

2、
$arr = array(0, 1, 2, 3, 4);
$arr = array_splice($arr, 1);

输出

 代码如下

还有array_shift() 函数删除数组中的第一个元素,并返回被删除元素的值.

Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)

$fruits = array("apple","banana","orange","pear");
$fruit = array_shift($fruits);
// $fruits = array("banana","orange","pear")
// $fruit = "apple";

相对的array_pop() 函数删除数组中的最后一个元素.

删除数组元素unset,或直接设置空

从数组尾删除元素
array_pop()函数删除并返回数组的最后一个元素。其形式为:

array_pop()函数删除并返回数组的最后一个元素。其形式为:

如果要在某个数组中删除一个元素,可以直接用的unset,但今天看到的东西却让我大吃一惊

mixed array_pop(aray target_array);

mixed array_pop(aray target_array);

 代码如下

下面的例子从$states数组删除了最后的一个州:

下面的例子从$states数组删除了最后的一个州:

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

 代码如下

 代码如下

之后,结果却不是那样的,最终结果是 Array ( [0] => a [2] => c [3] => d )

$fruits = array("apple","banana","orange","pear");
$fruit = array_pop($fruits);
//$fruits = array("apple","banana","orange");
//$fruit = "pear";

 $fruits = array("apple","banana","orange","pear"); 

 

删除数组中间的元素

$fruit = array_pop($fruits); 

那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice():

 代码如下

 //$fruits = array("apple","banana","orange"); 

 代码如下

function deleteElementFromArr($arr, $index){
if($index < count($arr)-1){
unset($arr[$index]);
reset($arr);
}
return $arr;
}

//$fruit = "pear";

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

我封装成了一个函数,方便大家使用:

array_filter()删除数组中的空元素

print_r($arr)之后,结果是Array ( [0] => a [1] => c [2] => d )

 代码如下

函数名:array_filter()
调用方式:array_filter($array)
参数说明:$array 是操作的对象,我们将删除其中的空元素
实例:

删除数组指定元素

<?php

 代码如下

如array_slice() 函数在数组中根据条件取出一段值,并返回.

function array_remove(&$arr, $offset)
{
array_splice($arr, $offset, 1);
}

<?php
    $array = ('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e'=>"");
    array_filter($array);
    echo "<pre>";
    print_r($array);
?>
结果:
Array (

array_slice(array,offset,length,preserve)

$arr = array('apple','banana','cat','dog');

     [a] => abc

array:数组

array_remove($arr, 2);
print_r($arr);
?>

     [b] => bcd

offset: 规定取出元素的开始位置。如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。

删除数组重复元素

     [c] => cde

 

 代码如下

    [d] => def

 代码如下

<?php
function assoc_unique($arr, $key) {
$tmp_arr = array();
foreach($arr as $k => $v) {
if(in_array($v[$key], $tmp_arr)) {
unset($arr[$k]);
} else {
$tmp_arr[] = $v[$key];
}
}
sort($arr);
return $arr;
}

   )

<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,1,2));
?>

$aa = array(
array('id' => 123, 'name' => '张三'),
array('id' => 123, 'name' => '李四'),
array('id' => 124, 'name' => '王五'),
array('id' => 125, 'name' => '赵六'),
array('id' => 126, 'name' => '赵六')
);
$key = 'name';
assoc_unique(&$aa, $key);
print_r($aa);
?>

几个函数用下来觉得array_search()比较实用

输出

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false

Array ( [0] => Cat [1] => Horse )

 代码如下

还有array_shift() 函数删除数组中的第一个元素,并返回被删除元素的值.

$array = array('1', '2', '3', '4', '5');

相对的array_pop() 函数删除数组中的最后一个元素.

$del_value = 3;
unset($array[array_search($del_value , $array)]);//利用unset删除这个元素

几个函数用下来觉得array_search()比较实用

print_r($array);

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false

输出

 代码如下

array('1', '2', '4', '5');

$array = array('1', '2', '3', '4', '5');

$del_value = 3;
unset($array[array_search($del_value , $array)]);//利用unset删除这个元素

print_r($array);

输出

array('1', '2', '4', '5');

本文由js333发布于计算机互联网,转载请注明出处:与删除元素,删除数组中的元素实例程序

关键词:

上一篇:字符串的截五种,php字符串函数学习之strstr

下一篇:没有了