2013-02-15 3 views
0

В этом фрагменте $ неавтоматический является узлом XPath создан из этого тега:PHP ключи ассоциативного массива не установлены

<option name="all">1</option> 

//... 
$this->permissions = array(); 
$key = $opt['name']; 
$value = $opt[0]; 
echo $key . "=" . $value; 
$this->permissions[$key] = $value; 
echo $this->permissions['all']; 
//... 

Из этого эха-заявления, которые я получаю следующее возвращение:

all=1 

Который является ожидаемый от первого эха, но второй ничего не печатает.

Когда я это сделаю: echo array_keys ($ this-> permissions);

я получаю: Массив

Когда я делаю: var_dump ($ this-> разрешения);

я получаю: массив (0) {}

Когда я делаю: print_r ($ this-> разрешения); или: print_r (array_keys ($ this-> permissions));

я получаю: Array()

Любые идеи, кто-нибудь? почему ключи возвращаются как массивы? Что я здесь отсутствует ...

+0

Выполните 'print_r ($ this-> разрешений);' и отправить обратно результат. – Aborted

+5

Результат array_keys - это массив. Вы удивлены? Прочтите документацию. –

+0

[array_keys()] (http://php.net/manual/en/function.array-keys.php) -> Возвращаемые значения: возвращает ** массив ** всех ключей ввода. ** ПРОЧИТАЙТЕ ДОСКА ПОЖАЛУЙСТА ** – HamZa

ответ

0

попробовать

var_dump($opt); 

и отправить обратно результаты

+0

объект (SimpleXMLElement) # 10 (1) {["@attributes"] => array (1) {["name"] => string (3) "all"}} –

+0

что-то не так с $ opt, потому что я могу Здесь нет значения «1». вы должны иметь что-то вроде «[0] int (1) 1» в этом дампе var. где в вашем коде этот var_dump? – JeanP

+0

Я заметил это также, но в выражении эха возвращается как ожидалось «all = 1» Я добавил еще один узел в xml-файл с «some» как имя и 2 в теге, и я получаю all = 1some = 2, как и ожидалось. Я просто переключил код на ... $ key = $ opt ['name']; $ value = $ opt ['value']; echo $ key. знак равно $ Значение; $ this-> permissions [$ key] = $ value; echo $ this-> permissions ['all']; echo $ this-> permissions ['some']; и узлы xml теперь

0

пытаются вар отвала, как это:

var_dump(array_keys($this->permissions)); 

видеть структуру вашего массива.

+0

Спасибо, я положил результаты в исходное сообщение. –

Смежные вопросы