Istniejąca ale nie istniejąca wartości tablicy? Odwołać się nie da, ale print_r ją pokazuje.

0

Mam tablice, gdzie mam wielkie litery alfabetu (klucze) i kody ASCII (wartości) wymieszane ze sobą. Pierwszym elementem jest:

M => 65

Które niby nie istnieje.... isset($tab['M']) zwraca false, a próba:

echo $tab['M'];

wywala Undefined index, ale....

gdy zrobie:

foreach($ral as $k => $r) {
   echo "$k => $r<br />";
}

Drukowane są wszystkie elementy, łącznie z 'M'!! Tak samo print_r() pokazuje obecność tej wartości.

Dodatkowo, jeżeli do tabeli dodam ten element ponownie, np tak:

$tab['M']=65; 

To isset() zwraca true i da sie ten element "wyechować", a print_r() pokazuje coś takiego:

 Array
(
    [M] => 65
    [Q] => 66
    [O] => 67
    [V] => 68
    [Y] => 69
    [F] => 70
    [D] => 71
    [B] => 72
    [K] => 73
    [U] => 74
    [J] => 75
    [P] => 76
    [X] => 77
    [G] => 78
    [W] => 79
    [I] => 80
    [S] => 81
    [L] => 82
    [Z] => 83
    [A] => 84
    [T] => 85
    [R] => 86
    [H] => 87
    [C] => 88
    [E] => 89
    [N] => 90
    [M] => 65
)

Czyli dwa identyczne elementy. Co jest grane?

0

Aż sprawdziłem u siebie czy działa i działa. Pokaż jak generujesz tablicę, bo pewnie w tym tkwi błąd.

0

Generuje ją z danych z pliku tekstowego: plik.txt:
M,Q,O,V,Y,F,D,B,K,U,J,P,X,G,W,I,S,L,Z,A,T,R,H,C,E,N

i kod:

  $plik=file("plik.txt");
  $tmp=explode(',',$plik[0]);
  $out=array(65=>$tmp[0]);
  for($i=1;$i<count($tmp);$i++) {
    $out[]=$tmp[$i];
  }
  $ral=array_flip($out);

1 użytkowników online, w tym zalogowanych: 0, gości: 1