Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z kluczem tablicy, ... element z XML kluczem w tablicy
bobens_83
post 31.08.2009, 20:58:27
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 7.11.2005
Skąd: z Czelsy

Ostrzeżenie: (0%)
-----


Witam drodzy PHP'owcy.

Nurtuje mnie pewna sytuacja ... mianowicie:

1) W przypadku pierwszym ładuję dane do tablicy w sposób: (string) klucz => (string) wartość

  1. $atest = array();
  2. $key = '';
  3. for ($x = 0; $x < 500; $x++) {
  4. $key .= "X";
  5. $value = "test" . strlen($key);
  6. $atest[$key] = $value;
  7. }
  8. echo $atest['XXXX'];


echo $atest['XXXX']; zwraca 'test4'

2) W przypadku drugim również ładuję tablicę: (string) klucz => (string) tzn: $acats[$cat_id] = $cat_txt;

  1. $acats = array();
  2. $cat_id = ""; // zmienna jako string
  3. $cat_txt = ""; // zmienna jako string
  4. $xml = simplexml_load_file('structure.xml');
  5. foreach ($xml->children() as $cat) {
  6. $cat_id = $cat['id']; // przypisanie do zmiennej typu string
  7. $cat_txt = $cat['txt']; // -||-
  8. $acats[$cat_id] = $cat_txt; // ERROR
  9. }


i otrzymuje trzykrotne (3 - tyle jest childrenów $cat w $xml, wartości nie powtarzają się)...
Warning: Illegal offset type in C:\wamp\www\test01\index.php on line 55


Na pierwszy rzut oka sutuacje (tzn sposób napełniania tablicy) wydają mi się analogiczne, czemu więc drugi sposób nie działa?

Będę wdzięczny za podpowiedzi, pozdrawiam. P.

Ten post edytował bobens_83 31.08.2009, 21:03:55
Go to the top of the page
+Quote Post
wookieb
post 31.08.2009, 21:07:50
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. var_dump($cat_id);

przed uzyciem tej zmiennej jako klucza i dostaniesz odpowiedź.


--------------------
Go to the top of the page
+Quote Post
bobens_83
post 31.08.2009, 21:33:48
Post #3





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 7.11.2005
Skąd: z Czelsy

Ostrzeżenie: (0%)
-----


Git. Należało zamienić:
  1. $cat_id = $cat['id'];
  2. $cat_txt = $cat['txt'];

na:
  1. $cat_id = (string)$cat['id'];
  2. $cat_txt = (string)$cat['txt'];


Dzięki za pomoc, oczywiście daje za nią punkta winksmiley.jpg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 4.05.2025 - 23:03