Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Neo-X2006
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 135
1

Удалить элементы из массива

05.07.2016, 15:59. Просмотров 590. Ответов 6
Метки нет (Все метки)

Всем привет!

Есть массив вида:

Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
Array
(
    [0] => Array
        (
            [PROPERTY_USER_VALUE] => 21730 
            [ACTIVE] => Y
        )
 
    [1] => Array
        (
            [PROPERTY_USER_VALUE] => 19443
            [ACTIVE] => N
        )


Как мне удалить из него элементы (в данном случае [1]), если у него ACTIVE = N?

Т.е чтоб в итоге осталось:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
Array
(
    [0] => Array
        (
            [PROPERTY_USER_VALUE] => 21730 
            [ACTIVE] => Y
        )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2016, 15:59
Ответы с готовыми решениями:

Удалить не повторяющиеся элементы массива
Здравствуйте! нужна функция типа array_keys(array_flip()) наоборот у меня есть...

Удалить элементы массива по кнопкам
Вывожу на экран в html массив , рядом с каждым элементом кнопка button. Как...

Удалить последние нулевые элементы массива
Всем привет. Есть несколько массивов примерно такого вида $a=array(0=>10,...

Удалить повторяющееся объекты/элементы из массива
Доброго дня. Имеется массив объектов. class Posit { var $long; //float;...

Удалить пустые элементы из массива и перегнать все в один
есть такой код : $html = str_get_html($content); $div =...

6
dezforse
22 / 22 / 5
Регистрация: 05.06.2015
Сообщений: 188
05.07.2016, 16:06 2
Как-то так.
PHP
1
2
3
4
5
for(i = 0; i < count(Array); i++)
{
    if (Array[i]['ACTIVE'] == N)
    unset Array[i];
}
0
Neo-X2006
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 135
05.07.2016, 16:20  [ТС] 3
Цитата Сообщение от dezforse Посмотреть сообщение
Как-то так.
Не сработало, массив остается прежним:

PHP
1
2
3
4
5
for($i = 0; $i < count($arResult["PERIOD"]); $i++)
{
    if ($arResult["PERIOD"][$i]['ACTIVE'] == 'N')
       unset($arResult["PERIOD"][$i]);
}
0
dezforse
22 / 22 / 5
Регистрация: 05.06.2015
Сообщений: 188
05.07.2016, 16:33 4
Neo-X2006, Пробуйте проверить что вам в целом выдает ваш перебор массива, получается ли сравнить значения и прочее. Я сейчас еще прогляжу варианты.

Добавлено через 4 минуты
Попробуйте так:
PHP
1
unset($arResult[$i]);
0
Neo-X2006
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 135
05.07.2016, 16:36  [ТС] 5
Написал такой код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
$arr = Array(
    "0" => Array (
        "PROPERTY_USER_VALUE" => "21730",
        "ACTIVE" => "Y"
    ),
    "1" => Array (
        "PROPERTY_USER_VALUE" => "21730",
        "ACTIVE" => "N"
    )
);
 
for($i = 0; $i < count($arr); $i++)
{
    if ($arr[$i]["ACTIVE"] == "N") {
          echo $arr[$i]["ACTIVE"];
          unset $arr[$i];
    }
}
 
print_r($arr);
Ругается на Parse error: syntax error, unexpected '$arr' (T_VARIABLE), expecting '(' in C:\U
sers\skidra\Desktop\php\scripts\unset_.php on line 18
0
dezforse
22 / 22 / 5
Регистрация: 05.06.2015
Сообщений: 188
05.07.2016, 16:45 6
Neo-X2006, Скобки для функции unset забыли
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 
$arr = Array(
    "0" => Array (
        "PROPERTY_USER_VALUE" => "21730",
        "ACTIVE" => "Y"
    ),
    "1" => Array (
        "PROPERTY_USER_VALUE" => "21730",
        "ACTIVE" => "N"
    )
);
 
for($i = 0; $i < count($arr); $i++)
{
    if ($arr[$i]["ACTIVE"] == "N") {
          echo $arr[$i]["ACTIVE"];
          unset($arr[$i]);
    }
}
 
print_r($arr);
 
?>
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1737 / 1280 / 579
Регистрация: 12.01.2011
Сообщений: 5,081
05.07.2016, 17:12 7
Зачем for?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$arr = Array(
    "0" => Array (
        "PROPERTY_USER_VALUE" => "21730",
        "ACTIVE" => "Y"
    ),
    "1" => Array (
        "PROPERTY_USER_VALUE" => "21730",
        "ACTIVE" => "N"
    )
);
    foreach($arr as $k=>$v){
            if($v['ACTIVE'] == "N"){
                unset($arr[$k]);
            }
    }
print_r($arr);
0
05.07.2016, 17:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2016, 17:12

Если все элементы массива различны, удалить элемент с максимальным значением
Дан произвольный массив. Если все его элементы различны удалить элемент с...

Нечетные элементы второго массива равны произведению порядкового номера на соответствующие элементы первого массива
Нужны 3 массива 1ый массив(массив из случайных чисел) 2ой нечетные элементы...

Как разделить массив на два массива, или удалить из массива часть однотипных элементов?
как разделить массив на два массива или удалить из массива часть однотипных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru