相关疑难解决方法(0)

PHP:从数组中删除元素

有没有一种简单的方法可以使用PHP从数组中删除元素,这样foreach ($array)就不再包含该元素了?

我认为设置它null会这样做,但显然它不起作用.

php arrays unset

2362
推荐指数
27
解决办法
245万
查看次数

如何从foreach循环中的数组中删除对象?

我遍历一个对象数组,并希望根据它的'id'属性删除其中一个对象,但我的代码不起作用.

foreach($array as $element) {
    foreach($element as $key => $value) {
        if($key == 'id' && $value == 'searched_value'){
            //delete this particular object from the $array
            unset($element);//this doesn't work
            unset($array,$element);//neither does this
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么建议.谢谢.

php arrays foreach unset

133
推荐指数
2
解决办法
13万
查看次数

在foreach循环中取消设置数组值

我有一个foreach循环设置通过我的数组,检查某个链接,如果它发现它从数组中删除该链接.

我的代码:

foreach($images as $image)
{
    if($image == 'http://i27.tinypic.com/29yk345.gif' ||
    $image == 'http://img3.abload.de/img/10nx2340fhco.gif' ||
    $image == 'http://i42.tinypic.com/9pp2456x.gif')
    {
        unset($images[$image]);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它并没有删除数组.它可能与某些事情有关$images[$image],因为这不是数组输入的关键,只有内容?有没有办法在不加入计数器的情况下做到这一点?

谢谢.

编辑:谢谢大家,但现在我有另一个问题,其中数组条目实际上没有被删除.

我的新代码:

foreach($images[1] as $key => $image)
{
    if($image == 'http://i27.tinypic.com/29yk345.gif')
    $image == 'http://img3.abload.de/img/10nx2340fhco.gif' ||
    $image == 'http://i42.tinypic.com/9pp2456x.gif')
    {
        unset($images[$key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

$ images现在是一个二维数组,因此我需要$ images [1].我已经检查过并且它成功地绕过了数组元素,并且一些元素实际上有一些我希望删除的URL,但它们并没有被删除.这是我的$images阵列:

Array
(
    [0] => Array
        (
            [0] => useless
            [1] => useless
            [2] => useless
            [3] => useless
            [4] => useless
        )

    [1] => Array
        ( …
Run Code Online (Sandbox Code Playgroud)

php arrays foreach unset

63
推荐指数
4
解决办法
12万
查看次数

在foreach循环中取消设置数组元素

所以这是我的代码:

<?php

$arr = array(array(2 => 5),
             array(3 => 4),
             array(7 => 10));

foreach ($arr as $v) {
    $k = key($v);
    if ($k > 5) {
        // unset this element from $arr array
    }
}

print_r($arr);

// now I would like to get the array without array(7 => 10) member
Run Code Online (Sandbox Code Playgroud)

如您所见,我从一个单键=>值数组的数组开始,我循环遍历此数组并获取当前元素的键(这是一个单项数组).

我需要用高于5的键取消数组的元素,我怎么能这样做?我可能还需要删除值小于50的元素或任何其他条件.基本上我需要能够获得当前数组项的键,它本身就是一个带有单个项的数组.

php

19
推荐指数
2
解决办法
3万
查看次数

在foreach循环中取消设置数组元素

我在foreach循环中通过引用访问数组,但unset()函数似乎不起作用:

foreach ( $this->result['list'] as &$row ) {
    if ($this_row_is_boring) {
        unset($row);
    }
}

print_r($this->result['list']); // Includes rows I thought I unset
Run Code Online (Sandbox Code Playgroud)

想法?谢谢!

php arrays foreach reference unset

16
推荐指数
3
解决办法
1万
查看次数

删除foreach循环中的数组元素

我有一个简单的数组,其中包含所有国家/地区的名称以及每个国家/地区在我的网站上注册的用户总数.它是这样的:

Array (
    [1] => Array ( [name] => Afghanistan [total] => 3 )
    [2] => Array ( [name] => Albania [total] => 0 )
)
Run Code Online (Sandbox Code Playgroud)

而且,我正在尝试删除拥有0个用户的数组元素(国家/地区).

我已尝试使用此代码,但它不起作用:

foreach($country as $row) {
    if ($row['total'] == 0) {
        unset($row);
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题?

php

7
推荐指数
1
解决办法
2万
查看次数

PHP - 在foreach循环中取消设置数组元素

您好我试图使用foreach循环删除数组元素,但它什么也没做.我需要索引完全消失而不是使其为null.这是我尝试过的:

foreach ($_SESSION['cart']  as &$arrays3) {
    if($arrays3['id'] == $id){
        unset($arrays3);
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,每个键的数组值包含一个关联数组.

php arrays foreach

2
推荐指数
1
解决办法
5537
查看次数

在PHP中删除foreach循环中的项

我有一个foreach循环,如果满足某些条件,我想从数组中取消设置项目,如下所示:

foreach ($array as $element) {
    if (conditions) {
        unset($element);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是之后的元素并没有被取消.我究竟做错了什么?我是否取消了对实际元素或类似内容的引用?

php arrays foreach reference unset

1
推荐指数
1
解决办法
4109
查看次数

在PHP中删除for循环中的某些数组元素

我已经将从mySQL查询的一些元素(水果名称)插入到数组中.现在,我想从数组中删除某些项目.如果数组存在,我想删除'Apple'和'Orange'.这是我尝试但我收到错误消息.

Array Example:
Array ( [1] => Orange [2] => Apple)

foreach($terms as $k => $v) 
{
    if (key($v) == "Apple") 
    {
        unset($terms[$k]);
    }
    elseif( key($v) == "Orange")
    {
        unset($terms[$k]);
    }

}


>>> Warning: key() expects parameter 1 to be array, string given //same error repeated 4 times
Run Code Online (Sandbox Code Playgroud)

我在这里提到了这个链接:如何在foreach循环中删除数组元素? 如果有人能指出我做错了什么,我将不胜感激.

php arrays for-loop

1
推荐指数
1
解决办法
72
查看次数

标签 统计

php ×9

arrays ×7

foreach ×5

unset ×5

reference ×2

for-loop ×1