Autor | Zpráva | ||
---|---|---|---|
Rellik Profil |
#1 · Zasláno: 10. 12. 2011, 17:02:26
Zdravím, potřeboval bych poradit s jednou věcí. Mám pole, ve kterém se mění obsah. Jednou to pole obsahuje několik dalších polí =>2 a někdy je to jen jedno samotné pole.
Nejlíp to bude vidět na příkladu: Jde o výpisy z databáze. Pokud je v databázi pouze jeden záznam, tak se o pole vypíše přímo: Array ( [id] => 29 [nazev] => Pokusný text [popis] => něco [obsah] => sd fgsdfgh ?? [obrazek] => a.jpg) Array ( [0] => Array ( [id] => 29 [nazev] => Pokusný text [popis] => něco [obsah] => sd fgsdfgh ?? [obrazek] => a.jpg) [1] => Array ( [id] => 30 [nazev] => dff [popis] => něco jiného [obsah] => pokus [obrazek] => b.jpg) ) Poradí někdo? Díky :) |
||
abc Profil * |
#2 · Zasláno: 10. 12. 2011, 17:13:12
Naslepo:
is_array($array[0]) |
||
Rellik Profil |
#3 · Zasláno: 10. 12. 2011, 17:30:52
To sem taky zkoušel ale moc to nepomohlo. Respektive vůbec. Potřebuju zjistit počet těch polí v poli, kvůli stránkování. Už sem vyzkoušel několik způsobů, které jsou v manuálu PHP http://cz.php.net/manual/en/function.count.php ale ani jeden neřeší můj problém :(
|
||
Bertram Profil |
#4 · Zasláno: 10. 12. 2011, 17:49:51 · Upravil/a: Bertram
„Stačilo by mi vyhodnotit asi tak: jednoduché pole -> 0 složené pole -> počet polí v poli“
Ahoj a mysqli_num_rows($result) by ti nestačilo? |
||
abc Profil * |
#5 · Zasláno: 10. 12. 2011, 17:59:29
No, me teda funguje
count($array[0])
Cela ukazka meho kodu: $array = Array ( 0 => Array (id => 29, nazev => 'Pokusný text', popis => 'něco', obsah => 'sd fgsdfgh', obrazek => a.jpg), 1 => Array ( id => 30, nazev => 'dff', popis => 'něco jiného', obsah => 'pokus')); echo count($array[0]); // vypise 5 echo count($array[1]); // vypise 4 - dal jsem pryc obrazek |
||
Rellik Profil |
#6 · Zasláno: 10. 12. 2011, 18:38:24
Bertram:
> „Stačilo by mi vyhodnotit asi tak: jednoduché pole -> 0 složené pole -> počet polí v poli“ > Ahoj a mysqli_num_rows($result) by ti nestačilo? Bohužel nestačilo protože je to přes objekt a výstupem je právě pole. Je to podle tohoto tutoriálu: http://net.tutsplus.com/tutorials/php/real-world-oop-with-php-and-mysql/comment-page-1/ abc: Nejspíš si nerozumíme. Nechci spočítat prvky v poli. To zvládnu. Já potřebuju spočítat ty pole v poli. Když je pouze jednorozměrné pole, tak potřebuju na výstupu 1 když pole obsahuje další pole, tak potřebuju zjistit kolik je těch polí, ne počty jejich obsahů. když to vezmu z prvního dotazu tak asi tak: pole je jednoduché -> 1 Array ( [id] => 29 [nazev] => Pokusný text [popis] => něco [obsah] => sd fgsdfgh ?? [obrazek] => a.jpg) Pokud je polí v poli víc tak potřebuju jejich počet. V ukázce jsou dvě takže - > 2 Array ( [0] => Array ( [id] => 29 [nazev] => Pokusný text [popis] => něco [obsah] => sd fgsdfgh ?? [obrazek] => a.jpg) [1] => Array ( [id] => 30 [nazev] => dff [popis] => něco jiného [obsah] => pokus [obrazek] => b.jpg) ) |
||
abc Profil |
#7 · Zasláno: 10. 12. 2011, 18:46:44
na obe tve ukazky staci count($array), muzes pls uvest priklad pole, na ktery ti count() nestaci?
|
||
Rellik Profil |
#8 · Zasláno: 10. 12. 2011, 18:54:57
abc:
Když dám count() na první možnost, tak vypíše 5 ,protože obsahuje pět položek. Když dám count() na druhou možnost vypíše 2 , protože obsahuje další dvě pole. A to právě ten problém u té první možnosti bych potřeboval aby to vypsalo jen jedničku, protože neobsahuje žádné další pole... Jinak ty ukázky jsou z reálného výpisu polí... |
||
Bertram Profil |
#9 · Zasláno: 10. 12. 2011, 19:01:37
Rellik:
Tak si tam tuto funkčnost dopiš, nebo honem honem pryč. jinak např: foreach ($pole as $item) { if (is_array ($item)) { $pocetZaznamu = count($pole); break; } else { $pocetZaznamu = 1; } } |
||
abc Profil |
#10 · Zasláno: 10. 12. 2011, 19:02:39 · Upravil/a: abc
aha, tak ted uz chapu, v cem je problem :-)
resenim je teda tohle: $pocet = is_array($array[0])? count($array) : 1; doufam, ze neprijdes s tim, ze nekde mas pole v poli, v poli :-) |
||
Bertram Profil |
#11 · Zasláno: 10. 12. 2011, 19:15:44
No a ještě sizeof() :)
|
||
Rellik Profil |
#12 · Zasláno: 10. 12. 2011, 19:18:28
Bertram, abc:
Díky za rady to s tím $pocet = is_array($array[0])? count($array) : 1; mě mohlo taky napadlout... No to je tak když se hledá řešení jinde.. A přitom je to tak jednoduché... Jinak po projití té třídy z toho webu sem zjistil že se tam ty řádky v databázi počítají taky, tak sem právě teď vyzkoušel všechny možnosti. S tím foreach to sice při obyčejném poli vypíše 1 ale u vícerozměrného pole to vypíše 0. Řešení od abc funguje správně. A nakonec jsem zjistil to že stačí použít schovanou funkci z toho objektu: $pocet = $db->numResults; Takže všem díky... Třeba to pomůže ještě někomu dalšímu... :) |
||
Časová prodleva: 12 let
|
0