Как проверить массив на пустые элементы

Demiurg

Guest
Смотри, если вле элементы пусты то выполняешь какое то действие, так ? если хоть один не пустой, то ты выполняешь другое действие.

if(все элементы пусты)
{
действие 1
}
else
{
действие 2
}

и все. как проверить пустф ли вс элементы ты знаешь, как ты сам сказал.
 

Infes

Guest
Demiurg
Да но, если в if передать что то типа $array[$key] == "" он сработает как и требуется, если все элементы будут ДЕЙСТВИТЕЛО равны пустой строке. А если будет пустой только - первый, второй, а третий (как я уже и писал) будет не пустой, - он вседь так же сработает. Другой способ мог заключаться в помещении каждого элемента массива в if типа -

if($array[0] == "" && $array[1] == "" && ит.д.)

но для меня он не подходит - т.к я писал в своем первом посте, что количество неопределенное т.е. - элементов может быть 10 а может и 20 т.е....
 

Demiurg

Guest
не надо в if перенавать элементы массива.
ты сначала определяешь пустой массив или нет. в зависимости от этого выставляешь переменную, скажем, $isEmpty(если массив пустой, то true, если нет, то false)
а потом уже if($isEmpty) и тд..
 

Rezec

По пиву? (socket80)
Гы
Так что-ли?
PHP:
$array = array(
	'',
	'',
	''
);
$count 	= count($array);
$pustie	= 0;
for($i = 0; $i < $count; $i++){
	       if($array[$i] == ''){
			$pustie++;
	       }
}

switch($pustie){
	case 0:
		echo 'Vse polnie';
	break;
	case $count:
                echo 'Vse pustie';
	break;
	default:
		echo 'Estj raznie';
	break;
}
 

Demiurg

Guest
socket80
если не считать кучу лишнего, то примерно так.
 

Infes

Guest
Demiurg
Спасибо за помощь!:) Сделал так:
PHP:
foreach($array as $val)
{
    if($val != "")
       $st = 1;
}
//.........
 

Demiurg

Guest
Infes
хорошо ... только еще добавть инициализацию $st перед циклом($st=0) и при нахождении первой же непустой строки можно не продолжать дальше цикл.
 

гоша

Guest
Если бы здесь обсуждалось программирование на С, я бы с тобой согласился.

Но в скриптовых языках вызов одной встроенной функции по-любому на порядки быстрее самых хитрых "алгоритмов".
 

.des.

Поставил пиво кому надо ;-)
Автор оригинала: гоша
Если бы здесь обсуждалось программирование на С, я бы с тобой согласился.

Но в скриптовых языках вызов одной встроенной функции по-любому на порядки быстрее самых хитрых "алгоритмов".
Теоретические выкладки на чем основаны? :)

Если хотите убедиться в обратном Вам сюда:
http://phpclub.ru/talk/showthread.php?s=&threadid=29278&rand=9
и сюда http://phpclub.ru/talk/showthread.php?s=&threadid=31021&rand=0
 

Линк

Guest
.des, хотя бы потому что встроенные ф-ии - бинарники, писаные на сях
а пользвательские фии - гы
 

гоша

Guest
.des.

> Если хотите убедиться в обратном Вам сюда:

да, Demiurg в смежной теме меня уже убедил в том печальном факте, что array_*** реализованы весьма коряво.

Поэтому мое сообщение следует читать так:

в пхп вызов одной встроенной функции как правило лучше самых хитрых "алгоритмов".

По следующим соображениям:

1) выигрыш в производительности ничтожный (никто же не работает с гигабайтными массивами на пхп)

2) зато код со встроенными функциями гораздо читабельнее и компактнее

3) производительность "хитрых алгоритмов" на пхп (как правило) зависит от структуры входных данных, а производительность встроенной функции (как правило) величина предсказуемая

4) код на пхп еще надо разобрать и выполнить, что тоже дополнительная нагрузка на систему.

И это мое последнее слово по данному вопросу. o)
 

Alexku80

Новичок
$check_empty = array_unique($array); // Убирает повторяющиеся значения из массива

if (empty($check_empty[1]) && count($check_empty) == 1){
echo 'В массиве только пустые значения'
}
 
Сверху