Есть объекты со следующим содержимым:
С массивом объектов:
SimpleXMLElement Object
(
[Предложение] => Array
(
[0] => SimpleXMLElement Object
( [Ид] => id )
[1] => SimpleXMLElement Object
( [Ид] => id )
)
)
И с одним объектом:
SimpleXMLElement Object
(
[Предложение] => SimpleXMLElement Object
()
)
Как определить каждый из них?
Проверки на is_array(), is_object и isset( $obj -> Ид ) не работают.
Полагаю, в вашем случае вы можете использовать метод count (не тот count, что считает элементы в массиве).
Хотя на самом деле, вы как минимум можете итерироваться и по одному объекту и по массиву одним и тем же кодом:
$s = '<rt>
<el>1</el>
</rt>';
$x = simplexml_load_string($s);
foreach ($x->el as $el) {
var_dump($el);
}
$s = '<rt>
<el>2</el>
<el>3</el>
<el>4</el>
</rt>';
$x = simplexml_load_string($s);
foreach ($x->el as $el) {
var_dump($el);
}
$array=array
(
"Предложение" => array(
"0" =>
array( "Ид" => "id" ),
"1" => array( "Ид" => "id" )
)
);
$arr2=array(
"Предложение" => array()
);
function get_lvl(array $array) {
$max_lvl = 1;
foreach ($array as $value) {
if (is_array($value)) {
$lvl= get_lvl($value) + 1;
if ($lvl> $max_lvl) {
$max_lvl = $lvl;
}
}
}
return $max_lvl;
}
if(get_lvl($array)>"1"){
echo "массив имеет вложенность".get_lvl($array);
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей