<?php
//Caso B. Inicializando valores de ejemplo para probar la función
$arr= array(0 => 'azul', 1 => 'rojo', 2 => 'verde', 3 => 'rojo');
$arr_norojo=remover_simple("rojo",$arr);
print_r($arr_norojo);
$arr_noazul=remover_simple("azul",$arr);
print_r($arr_noazul);
/*
* Nuestra función simple usando array_search() y unset()
* Devuelve un $arr sin la primera ocurrencia del $valor pasado en parámetro
*/
function remover_simple ($valor,$arr)
{
if (($key = array_search($valor, $arr)) !== false)
{
unset($arr[$key]);
}
echo "Removiendo sólo una vez: ".$valor."\n\n";
return $arr;
}
结果:
Removiendo sólo una vez: rojo
Array
(
[0] => azul
[2] => verde
[3] => rojo
)
Removiendo sólo una vez: azul
Array
(
[1] => rojo
[2] => verde
[3] => rojo
)
如果您有一个数字索引数组,其中所有值都是唯一的(或者不是唯一的,但您想删除特定值的所有实例),您可以简单地使用
array_diff()
删除匹配的元素,如下所示:例如:
这显示了以下内容:
在此示例中,删除了值为“Charles”的元素,这可以通过
sizeof()
报告初始数组大小为 4 和删除后为 3 的调用来验证。A. 如果要删除数组内所有出现的值
您可以组合以下 PHP 函数:
array_keys()
和unset()
在示例中,我实现了该功能
remover()
:参见解决方案 A 和 B 的演示
结果:
B. 如果您只想删除一个匹配项:
您可以将
unset()
上面引用的内容与array_search()
.例子:
结果:
一种简单的方法是使用“未设置”功能,我想您正在使用“JSON”格式,因为它现在被广泛使用:
语法:
这里是另一种解决方案,它对正在寻找的另一个人很有用
//删除第一个数组中与第二个数组相等的元素
其输出将是: Array ( [2] => 3 )
这将取决于您所处的情况:
我想删除一个索引已知的元素 ......
...
我想要的是从数组中删除一个值。 在这种情况下,由于可以有多个,我可以通过一个选项来搜索该值的位置来定位它们,因为可以有多个,我们将不得不迭代。 ..
...