Вопрос вот в чем:
Собственно проверяю я существование xml файла, подгружаю его функцией simplexml_load_file и прохожусь по объекту циклом foreach.
И соответственно в заранее объявленный массив встраиваю ключ и его значение.
И вот тут проблема. Значение ключа может быть строка или число, а в ключ почему то передается объект:
foreach($xmlParse->block as $block){
$xmlAr[$block->id] = $block->name;
}
Как можно решить проблему с ключом, кроме явного преобразования в строку командой (string) или запуском второго цикла?
Спустя 32 минуты, 12 секунд (17.07.2012 - 23:04) Winston написал(а):
print_r($block);
Что показывает? И не плохо было бы взглянуть на xml
Что показывает? И не плохо было бы взглянуть на xml
Спустя 1 час, 32 минуты, 55 секунд (18.07.2012 - 00:37) Quieteroks написал(а):
xml такого содержания:
А print_r выводит объект, как и должен:
var_dump выдал, что оба параметра внутри строковые.
echo $block->id Замечательно выводит его содержимое.
<?xml version="1.0" encoding="UTF-8"?>
<blocklist>
<block>
<id>1</id>
<name>test1</name>
</block>
<block>
<id>2</id>
<name>test2</name>
</block>
</blocklist>
А print_r выводит объект, как и должен:
SimpleXMLElement Object
(
[id] => 1
[name] => test1
)
var_dump выдал, что оба параметра внутри строковые.
echo $block->id Замечательно выводит его содержимое.
Спустя 23 минуты, 59 секунд (18.07.2012 - 01:01) Игорь_Vasinsky написал(а):
$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
<blocklist>
<block>
<id>1</id>
<name>test1</name>
</block>
<block>
<id>2</id>
<name>test2</name>
</block>
</blocklist>';
$xml = simplexml_load_string($xmlstring);
#echo '<pre>' . print_r($xml, 1) . '</pre>';
foreach ($xml->block as $block) {
echo $block->id.':'.$block->name.'<br />';
}
Спустя 4 минуты, 50 секунд (18.07.2012 - 01:06) Игорь_Vasinsky написал(а):
ой... недочитал)
Спустя 1 минута, 43 секунды (18.07.2012 - 01:08) Игорь_Vasinsky написал(а):
костылюга
foreach ($xml->block as $block) {
$arr[(string)$block->id] = (string)$block->name;
}
echo '<pre>' . print_r($arr, 1) . '</pre>';
Спустя 7 часов, 37 минут, 47 секунд (18.07.2012 - 08:46) Quieteroks написал(а):
Игорь_Vasinsky
Этот костыль и я придумал...
Других вариантов в общем нет, только явное преобразование...
Думал мож есть более изящное решение.
Этот костыль и я придумал...
Других вариантов в общем нет, только явное преобразование...
Думал мож есть более изящное решение.
Спустя 6 минут, 56 секунд (18.07.2012 - 08:52) Игорь_Vasinsky написал(а):
не знай, больно с этой библией не работал, так с ходу написал... может найдутся умы - подскажут.
Спустя 5 часов, 31 минута, 57 секунд (18.07.2012 - 14:24) Winston написал(а):
Можно на php.net посмотреть, там везде где нужно используется явное преобразования типов, потому, думаю в этом нет ничего страшного