处理 php 数组,其内容可能有也可能没有另一个数组
Dealing with php array whose content may or may not have another array
我正在处理结构因数组中的数字或项目而异的数组。
例如下面是一个数组,其中有一项。
// Case #1
["Assignment"]=>
object(stdClass)#29 (9) {
["Id"]=> string(10) "1234567890"
..
}
但是如果数组中的项目超过 1 个,
// Case #2
["Assignment"]=>
array(2) {
[0]=>
object(stdClass)#28 (9) {
["Id"]=> string(10) "1234567890"
..
}
[1]=>
object(stdClass)#28 (9) {
["Id"]=> string(10) "1234567890"
..
}
}
请注意,内容位于另一个数组中。不管有多少项目,我都想访问Id
。 $array->Id
适用于一种情况,但不适用于另一种情况,并出现错误 Trying to get property of non-object
.
我可以通过计算数组中内容的数量来想出一个低效的方法:
// say the arrays above are declared as $assignment
if($numOfAssignment > 1) {
foreach($assignment as $key) {
echo $key->Id;
}
}
else {
echo $assignment->Id;
}
但是如果代码有点冗长,我觉得太重复了,效率低下。
无论数组中的内容有多少,有没有办法在一个有效的短语中做到这一点?让我知道是否有任何不清楚的地方。谢谢!
你可以做的是把非数组变成一个只有一个元素的数组,然后你就可以一致地处理它了。
if (!is_array($assignment)) {
$assignment = array($assignment);
}
foreach ($assignment as $key) {
echo $key=>Id;
}
我正在处理结构因数组中的数字或项目而异的数组。
例如下面是一个数组,其中有一项。
// Case #1
["Assignment"]=>
object(stdClass)#29 (9) {
["Id"]=> string(10) "1234567890"
..
}
但是如果数组中的项目超过 1 个,
// Case #2
["Assignment"]=>
array(2) {
[0]=>
object(stdClass)#28 (9) {
["Id"]=> string(10) "1234567890"
..
}
[1]=>
object(stdClass)#28 (9) {
["Id"]=> string(10) "1234567890"
..
}
}
请注意,内容位于另一个数组中。不管有多少项目,我都想访问Id
。 $array->Id
适用于一种情况,但不适用于另一种情况,并出现错误 Trying to get property of non-object
.
我可以通过计算数组中内容的数量来想出一个低效的方法:
// say the arrays above are declared as $assignment
if($numOfAssignment > 1) {
foreach($assignment as $key) {
echo $key->Id;
}
}
else {
echo $assignment->Id;
}
但是如果代码有点冗长,我觉得太重复了,效率低下。 无论数组中的内容有多少,有没有办法在一个有效的短语中做到这一点?让我知道是否有任何不清楚的地方。谢谢!
你可以做的是把非数组变成一个只有一个元素的数组,然后你就可以一致地处理它了。
if (!is_array($assignment)) {
$assignment = array($assignment);
}
foreach ($assignment as $key) {
echo $key=>Id;
}