Adrian N.

Adrian N. Informatyk

Temat: PHP QUIZ

Ups.

Tak to jest, jak sie czyta tylko ostatni post ;)

konto usunięte

Temat: PHP QUIZ

Jak sprawdzić czy tablica nie zawiera pustych wartości (stringów) - napisac funkcję.

Warunek - nie korzystamy z wbudowanych pętli (while, for, foreach, do while itd.).
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: PHP QUIZ

pytasz o cos takiego?

http://wklej.org/id/433987/

if nie jest pętlą, więc zakładam, że go dopuszczasz.
i nie jestem pewien czy konieczna tu jest referencja i czy dobrze ją zastosowałem. niestety nie kumam jej za bardzo, wiec jak by ktos chcial wyjasnic, to ja chetnie poslucham :)

edit:

ok juz doczytalem ze referencja nie jest tu potrzebnaKonrad Karpieszuk edytował(a) ten post dnia 08.12.10 o godzinie 00:39

konto usunięte

Temat: PHP QUIZ

$zawieraPusteStringi = (bool) preg_grep("/^$/", $array);


A bez pisania nowej funkcji się liczy ? ;)Jakub Chrzanowski edytował(a) ten post dnia 08.12.10 o godzinie 00:51
Maciej W.

Maciej W. Ruby on what?!

Temat: PHP QUIZ

in_array("", $array, true);

Chyba ze w tym temacie chodzi o to zeby wymyslac rozne rzeczy na nowo to sorki.

No dobra, moze i chodzi o to zeby wymyslac na nowo, nie doczytalem.

function omg_lets_look_for_empty_string_in_array($arr) {
if (!is_bool(array_search("",(array) $arr))) return true;
return false;
}


Wiem ze pewnie chodzi zeby zrobic cos ciekawego, ale gdzie tu sens jesli mamy gotowe rozwiazania? :)Maciej Wojdyr edytował(a) ten post dnia 08.12.10 o godzinie 02:18

konto usunięte

Temat: PHP QUIZ

Właśnie spojrzałem, że nie sprecyzowałem do końca zadania. Chodzi o sprawdzenie czy tablica nie zawiera wszystkich pustych wartości. Żeby nakierować, to chodzi o użycie wbudowanych funkcji PHP od przemieszczania się po tablicy (nie chodzi o iteratory, ani kombinacje z zwiększaniem licznika np i++)

Ps. dobrze kombinuje Maciej WojdyrŁukasz Adamczewski edytował(a) ten post dnia 08.12.10 o godzinie 09:15

konto usunięte

Temat: PHP QUIZ

No to jeśli chodzi o sprawdzenie, czy wszystkie elementy tablicy są pustymi stringami to można to tak zrobić:

$zawieraPusteStringi = count(preg_grep("/^$/", $array)) == count($array);
Jarek W.

Jarek W. Software Engineer

Temat: PHP QUIZ

Może coś takiego (nie wiem czy dobrze zrozumiałem zadanie):


<?php

function check($array) {
return !(boolean)array_sum(array_map(function($x) {return strlen($x);}, $array));
}



$a = array(
array('aaa', '', 'ccc'),
array('aaa', 'bbb', 'ccc'),
array('', '', ''),
);

foreach($a as $array) {
$results[] = check($array);
}

var_dump($results);

konto usunięte

Temat: PHP QUIZ

Łukasz Adamczewski:
Jak sprawdzić czy tablica nie zawiera pustych wartości (stringów) - napisac funkcję.

Warunek - nie korzystamy z wbudowanych pętli (while, for, foreach, do while itd.).

To zadanie z typu: jak wbić gwoździa nie używając młotka. Ja bym proponował po prostu odpuszczać kolejkę, jeśli nie możemy wymyślić sensownego pytania.

konto usunięte

Temat: PHP QUIZ

Łukasz Karpuć:
Łukasz Adamczewski:
Jak sprawdzić czy tablica nie zawiera pustych wartości (stringów) - napisac funkcję.

Warunek - nie korzystamy z wbudowanych pętli (while, for, foreach, do while itd.).

To zadanie z typu: jak wbić gwoździa nie używając młotka. Ja bym proponował po prostu odpuszczać kolejkę, jeśli nie możemy wymyślić sensownego pytania.

Wiesz, nie do końca chyba się z Tobą zgodzę, ale za pewne nie słyszałeś o komendach typu array_walk, array_filter itd.

Skoro są takie funkcje to dlaczego ich nie stosować, tym bardziej, że czasem mogą uprościć zapis albo tworzyć skrótowce przy użyciu np. closures i funkcji lambda w php 5.3.

Dla przykładu mój kod:


/**
@param array $array input array
@return boolean
*/
function isEmpty(array $array) {
$callbackFunction = create_function('$v', 'return strlen($v) > 0;');

return (
count(array_filter($array, $callbackFunction)) == 0
) ? true : false;
}


Jarek Walkiewicz prezentuje analogiczne rozwiązanie tylko zamiast counta korzysta z array_sum ale na to samo wychodziŁukasz Adamczewski edytował(a) ten post dnia 08.12.10 o godzinie 19:23

konto usunięte

Temat: PHP QUIZ

Łukasz Adamczewski:

Wiesz, nie do końca chyba się z Tobą zgodzę, ale za pewne nie słyszałeś o komendach typu array_walk, array_filter itd.

Opowiedz mi coś więcej o pehape...

Skoro są takie funkcje to dlaczego ich nie stosować,

-_-'
(bla bla bla)

Mógłbym napisać jakiś złośliwy komentarz, ale nie chce mi się. Miłego wbijania gwoździ głową :)Łukasz Karpuć edytował(a) ten post dnia 08.12.10 o godzinie 20:08

konto usunięte

Temat: PHP QUIZ

Łukasz Karpuć:
Łukasz Adamczewski:

Wiesz, nie do końca chyba się z Tobą zgodzę, ale za pewne nie słyszałeś o komendach typu array_walk, array_filter itd.

Opowiedz mi coś więcej o pehape...

Skoro są takie funkcje to dlaczego ich nie stosować,

-_-'
(bla bla bla)

Mógłbym napisać jakiś złośliwy komentarz, ale nie chce mi się. Miłego wbijania gwoździ głową :)Łukasz Karpuć edytował(a) ten post dnia 08.12.10 o godzinie 20:08


Goldenline ma tą ciekawą własność, że jak się kogoś cytuje to na message boardzie pokazuje pierwszą odpowiedź jakiej udzieliłeś (bez późniejszej korekty którą jak widać wykonałeś) czyli było to:
To nie są komendy, tylko funkcje, gołowąsie.

Ten cytat wskazuje, że po pierwsze chce Ci się pisać złośliwe komentarze, dalej - uznajesz się za starszego, bardziej doświadczonego programistę, którego zdania nie należy kwestionować, po drugie czepiasz się słowa którego znaczenie jest dosyć szerokie i tożsame z poleceniem / rozkazem które ma wykonać interpreter kodu zgadza się?

Po trzecie jeśli wykorzystywanie callbacków jako elementów sterujących logiką, a także rozwiązań pochodnych jest wbijaniem gwoździa głowa to porozmawiaj może z programistami jQuery, gdzie stosowanie funkcji jako parametrów przekazywanych przy "trawersacji" jest powszechną praktyką.
(bla bla bla)

Po czwarte naprawdę imponujący poziom dyskusji prezentujesz.

konto usunięte

Temat: PHP QUIZ

Łukasz Adamczewski:

Ten cytat wskazuje, że.. bla bla bla

Złośliwy to ja mogę dopiero być. Edycja świadczy o tym, że się powstrzymałem. Twoje wnioskowanie jest godne pożałowania.

Powiedziałem co myślę o pytaniu, a Ty wyjeżdżasz na mnie z tekstami sugerującymi, że callbacki to dla mnie czarna magia i snujesz jakieś dzikie wnioski. Ogarniesz się sam, czy chcesz tyradę z mojej strony?
Jarek W.

Jarek W. Software Engineer

Temat: PHP QUIZ

Chłopaki, jak macie coś do siebie, to na priv - ten wątek powstał po to, aby zamieszczać tutaj różne zadania do rozwiązania, a które dotyczą języka PHP (niby oczywiste). Nie wszyscy muszą to lubić, ale niektórym, w tym mi, to się podoba.

Polecam Wam przeczytać fajny tekst na stronie http://www.benchmark.pl/aktualnosci/Opinia_Jak_nie_byc_trollem_internetowym-31630.html - szczególnie punkt 6. i 8.Jarek W. edytował(a) ten post dnia 08.12.10 o godzinie 21:41

konto usunięte

Temat: PHP QUIZ

Jarek W.:
Chłopaki, jak macie coś do siebie ...

Masz rację.

A ja przyniosłem jeden z nieznanych przeze mnie młoteczków:


function hasNoEmptyStrings($a)
{
return !in_array('', $a, 1);
}


Dobranoc.

// PS. Pierwotnie w przykładzie była funkcja array_search(), bo zaszalałem ;]

// PS2. Nie zauważyłem nawet, że Maciej Wojdyr już napisał rozwiązanie..

..a co do doprecyzowania.. co to znaczy "wszystkie puste wartości"? puste stringi i puste tablice? Puste stringi powyżej.. puste tablice.. aaa.. nie chce mi się jednak tracić czasu na pierdoły..Łukasz Karpuć edytował(a) ten post dnia 08.12.10 o godzinie 22:32

konto usunięte

Temat: PHP QUIZ

function hasNoEmptyStrings($a)
{
return !in_array('', $a, 1);
}

Powyższy zapis zapewnia nas że istnieje chociaż jeden pusty string, ale nie jest precyzyjny w określaniu czy cała tablica ma tylko puste wartości (null lub ''), jeśli by jeszcze to nie było jasne to pusty = zerowa długość łańcucha przy konwersji na string czyli


$a = array(0 => null, 1 => '', 2 => '', 3 => 3);

po wykonaniu takiego kodu ma powiedzieć, że nie ma, natomiast dla kodu

$b = array(0 => null, 1 => '', 2 => '', 'cos' => null);


ma pokazać że ma.
Dominik Marczuk

Dominik Marczuk Remote Team Lead w
Sonalake

Temat: PHP QUIZ

Nie jestem w temacie, ale...

function areAllEmpty($s) {
$ret = true;
foreach ($s as $v) $ret &= empty($v);
return $ret;
}
Dominik Marczuk edytował(a) ten post dnia 08.12.10 o godzinie 23:26
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: PHP QUIZ

Dominik Marczuk:
foreach ($s as $v) $ret &= empty($v);


bylo zalozenie ze nie uzywamy petli

ale proponuje zakonczyc spor:

do wszystkich: zalozmy ze to bylo zadanie z algorytmiki, a nie zadanie na stworzenie rozwiazania do implementacji w projekcie.

lukasz: wybierz kogos, kto wygral i przejdzmy do nastepnego pytania
Dominik Marczuk

Dominik Marczuk Remote Team Lead w
Sonalake

Temat: PHP QUIZ

Konrad Karpieszuk:
Dominik Marczuk:
foreach ($s as $v) $ret &= empty($v);


bylo zalozenie ze nie uzywamy petli

No właśnie zastanawiałem się, dlaczego nie było poprawnej odpowiedzi, ale nie czytałem wcześniejszych postów :).

To może tak:

function allEmpty($s) {
return empty(preg_grep('/.+/',$s);
}
Dominik Marczuk edytował(a) ten post dnia 09.12.10 o godzinie 00:39

konto usunięte

Temat: PHP QUIZ

Dominik Marczuk:
Konrad Karpieszuk:
Dominik Marczuk:
foreach ($s as $v) $ret &= empty($v);


bylo zalozenie ze nie uzywamy petli

No właśnie zastanawiałem się, dlaczego nie było poprawnej odpowiedzi, ale nie czytałem wcześniejszych postów :).

To może tak:

function allEmpty($s) {
return empty(preg_grep('/.+/',$s);
}
Dominik Marczuk edytował(a) ten post dnia 09.12.10 o godzinie 00:39

napisałem:

>Jarek Walkiewicz prezentuje analogiczne rozwiązanie tylko zamiast counta korzysta z array_sum ale na to samo wychodzi

,więc Jarek Walkiewicz ma swój czas :D

Następna dyskusja:

Narzędzia do PHP




Wyślij zaproszenie do