Nie mogę dobrać się do value w tablicy za pomocą key

0

Chyba znalazłem buga w php, albo jestem ślepy.

        $select_result = $table->fetchAll($select)->toArray();

        $result = array();
        var_dump($select_result);
        foreach ($select_result as $row) {
            $result[$row['name']] = $row['count'];
        }
        var_dump($result);
        var_dump($result['new']);
        foreach($result as $res) {
            var_dump($res);
        }

Ten kod produkuje takie cos:

ARRAY (SIZE=2)
  0 => 
    ARRAY (SIZE=2)
      'COUNT' => STRING '109' (LENGTH=3)
      'NAME' => STRING 'NEW' (LENGTH=3)
  1 => 
    ARRAY (SIZE=2)
      'COUNT' => STRING '28' (LENGTH=2)
      'NAME' => STRING 'IN PROGRESS' (LENGTH=11)

ARRAY (SIZE=2)
  'NEW' => STRING '109' (LENGTH=3)
  'IN PROGRESS' => STRING '28' (LENGTH=2)

NULL

STRING '109' (LENGTH=3)
STRING '28' (LENGTH=2)

Jak to jest możliwe?

0

Okej odkryłem przyczynę. Kluczem do sukcesu było dodanie strtolower($row->name) w foreach. Czy mógłby mi ktoś wyjaśnić dlaczego?

0

Klucze są case-sensitive.

<?php
 
$array = [
	'test' => 0,
	'TEST' => 1
];
 
echo $array['test'] . "\n";
echo $array['TEST'] . "\n";

http://ideone.com/zBMlF3

0

No dobra, ale jeżeli pisałem NEW to skoro są case-sensitive to powinno pójść, a ja dostawałem NULL'a czyzby tam były jakieś inne ukryte znaczki?

0

Wcale nie napisałeś NEW - a w każdym razie nie w kodzie, który podałeś.

0

No w kodzie tego nie uwzględniłem, ale zanim przyszedłem z tym pytaniem na forum to probowałem na wiele sposobów i nie działało. Dziwne..

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