Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка на пустоту полей 
V
    Опции темы
s1lver
Дата 28.9.2014, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Доброго времени суток!

Есть массив с ключами вида:

Код

test_2_0_0_type
test_2_1_0_type
test_2_2_0_type
test_2_3_0_type

test_2_0_1_type
test_2_1_1_type
test_2_2_1_type
test_2_3_1_type

test_3_0_0_type


Первая цифра в ключе идентификатор группы полей, вторая цифра идентификатор поля, третья цифра идентификатор группы полей в коллекции. Как можно проверить что все значения полей в группе не пустые? 


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
ksnk
Дата 28.9.2014, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



пересобрать массив в массив групп.
проверить целый массив на наличие непустых значений можно, например, так
Код

$x=array(
'test_0_0_0_xxx1'=>'',
'test_0_0_0_xxx2'=>'',
'test_0_0_0_xxx3'=>'',
);
count(array_diff($x,array('')))>0



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
s1lver
Дата 30.9.2014, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Цитата

пересобрать массив в массив групп.
проверить целый массив на наличие непустых значений можно, например, так


Как-то это не очень работает...

Вот так, конечно, ближе

Код

            $x=array(
                'test_0_0_0_xxx1'=>'',
                'test_0_0_0_xxx2'=>'',
                'test_0_0_0_xxx3'=>'',
            );
            if(count(array_diff($x, [''])) === count($x)){
                die("true");
            }else{
                die("false");
            }

но, что-то не так  smile 



Хотя итоговый массив получается такой

Код

array(9) {
  ["test_0_0_0_1"]=>  string(10) "1234567890"
  ["test_0_0_0_2"]=>  string(14) "йцукенгшщзфыва"
  ["test_0_0_0_3"]=>  string(5) "rerer"
  ["test_0_0_0_4"]=>  string(4) "rere"
  ["test_0_0_0_5"]=>  string(10) "04.09.2014"
  ["test_0_0_0_6"]=>  string(14) "йцукенгшщзфыва"
  ["test_0_0_0_7"]=>  string(4) "7676"
  ["test_0_0_0_8"]=>  string(3) "576"
  ["test_0_0_0_9"]=>  string(11) "йцукенгшщзх"
}


Это сообщение отредактировал(а) s1lver - 30.9.2014, 13:40


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
baldina
Дата 30.9.2014, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



если только проверить, можно обычным циклом без построения массива типа
Код

  foreach ($x as $key=>$value){
     if (preg_match("/^test_$group/",$key))
       if (empty($value))
         return true;
  }
  // else
  return false;

если подмассив группы выделен в отдельный массив, можно при помощи reduce
Код

array_reduce ($x, function ($result, $value) {
    return $result and !empty($value);
  }, true);

PM MAIL   Вверх
s1lver
Дата 1.10.2014, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Похоже понял в чем проблема. Иногда в этот массив попадает вот такая запись, которая все ломает
Код

  ["test_0_0_0_10"]=>
  array(2) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
  }

 smile 

Проблему решил, всем спасибо!

Это сообщение отредактировал(а) s1lver - 1.10.2014, 15:55


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.