Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][tablice] generowanie tytułów, nietypowa pętla
Forum PHP.pl > Forum > PHP
kristaps
Witam, chciałbym Was prosić o radę jak najlepiej podejść do tematu, który niżej opiszę. Mam tymczasową tablicę dla każdego produktu:

  1. (
  2. [0] => Array
  3. (
  4. [0] => VW
  5. [1] => Array
  6. (
  7. [0] => GOLF IV
  8. [1] => PASSAT
  9. [2] => JETTA
  10. [3] => POLO
  11. [4] => JETTA
  12. [5] => TRANSPORTER T4
  13. [6] => TRANSPORTER T5
  14. )
  15. [1] => Array
  16. (
  17. [0] => AUDI
  18. [1] => Array
  19. (
  20. [0] => A2
  21. [1] => A4
  22. [2] => A4
  23. [3] => A2
  24. [4] => 80
  25. [5] => 100
  26. [6] => A4
  27. [7] => A2
  28. [8] => 100
  29. )
  30.  
  31. )


Na jej podstawie muszę wygenerować grupy, które nie mają więcej niż 50 znaków. Ważne by skrypt kontynuował przeszukiwanie tablicy, jeżeli dana fraza jest już zbyt długa, a następnie do niej wracał, podczas generowania kolejnego tytułu.

Czyli jeżeli mam grupę:

"GOLF IV PASSAT JETTA POLO TRANSPORTER T4", w tym przypadku zostaje mi 10 znaków, więc kolejna pozycja "TRANSPORTER T5" musi zostać pominięta, następnie przechodzi do grupy AUDI i wybiera kolejną pozycję. Tytuł wyglądałby następująco: "GOLF IV PASSAT JETTA POLO TRANSPORTER T4 AUDI A2". W następnej kolejce wybierze wszystkie pozycje "AUDI", a następnie doda "TRANSPORTER T5". Jaki sposób będzie najrozsądniejszy?
trueblue
Przed Twoją edycją:
  1. function joinMaxString($joined,$item)
  2. {
  3. if(empty($joined)){
  4. if(strlen($item)<=50){
  5. $joined=$item;
  6. }
  7. }
  8. else{
  9. if(strlen($joined." ".$item)<=50){
  10. $joined.=" ".$item;
  11. }
  12. }
  13. return $joined;
  14. }
  15. var_dump(array_reduce($marki[0][1],"joinMaxString"));

może coś z tego utkasz.
kristaps
Witam, dzięki za odzew. Jak będzie najlepszy sposób żeby całość zapętlić i pominąć już wybrane?

  1. unset($marki[0][1][1]);
i pomniejszasz tabelę, czy jest lepszy sposób?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.