从多维数组中获取值
Posted
技术标签:
【中文标题】从多维数组中获取值【英文标题】:Fetch values from multidimensional array 【发布时间】:2015-05-20 23:49:19 【问题描述】:我从下面的代码中得到一个数组
$classes = $mb->makeNumericArray($data['GetClassesResult']['Classes']['Class']);
$result = $classes;
echo '<pre>';
print_r($result);
echo '</pre>';
数组是
Array
(
[0] => Array
(
[ClassScheduleID] =>
[ClassDescription] => Array
(
[Description] =>
[Program] => Array
(
[ScheduleType] => DropIn
)
)
[Staff] => Array
(
[SortOrder] =>
)
[1] => Array
(
[ClassScheduleID] =>
[ClassDescription] => Array
(
[Description] =>
[Program] => Array
(
[ScheduleType] => DropIn
)
)
[Staff] => Array
(
[SortOrder] =>
)
)
我试图从 code at *** 获取引用的代码,
foreach($result as $res)
$classscheduleid= $res['ClassScheduleID'];
echo $classscheduleid;
目前我尝试了这段代码,打印ClassScheduleID
。
但它没有正确获取数据。它错过了[0]
的值,并且在数组的其余部分重复了结果。
谁能告诉我如何从完整的数组中获取ClassScheduleID
以及Description
、ScheduleType
和sortorder
?
【问题讨论】:
只是为了确保您没有混合result
和classes
是吗?是否有任何代码将结果变异为类并影响数据集?
@mvbrakel 我已经编辑了这个问题,两个值没有混合,你能再看看吗
我看到您编辑了问题以显示类如何变异为结果。我赞成 n-dru 的编辑答案。这应该够了吧。仅在他的回答中将classes
替换为results
以符合您更新的问题
@mvbrakel 它我可以将课程表 id 存储在数据库中,但我无法将其他人保存在数据库中,因为它们以简单的文本显示
【参考方案1】:
如果你使用foreach ($result as $row)
然后你将遍历所有 $result[0], $result[1]...
然后你回显$result[0]["ClassScheduleID"]
,在你的情况下,看看print_r ($result)
,是空的,所以这就是你没有得到结果的原因。
【讨论】:
我已经修改了这个问题,你可以再试一次,因为我的数组有价值【参考方案2】:你需要遍历内部数组:
foreach($classes as $key => $internal_array)
$classscheduleid= $internal_array['ClassScheduleID'];
echo $classscheduleid;
//again, ClassDescription is also array
foreach($internal_array['ClassDescription'] as $internal_key => $res)
echo " $internal_key => $res";//etc
或者递归执行:
function echo_array($a, $key)
foreach($a as $key1 => $array1)
if(!is_array($array1))
echo "$key $key1 : $array1<br/>";
else
echo_array($array1,$key1);
echo_array($a,'');
【讨论】:
这行得通吗?当我查看代码时,似乎$res['ClassScheduleID'];
将不存在?我错过了什么吗? ClassScheduleID
是 $internal_array
循环中的一个键,不是吗?
@n-dru 我得到这样的结果 0 => 0 => 0
@n-dru 我现在得到了结果,但不是我希望的形式,因为我分别需要每个值,以便我可以将它们中的每一个保存在数据库中
好吧,您现在要求的是真正的基本 php。将echo
命令替换为对您选择的变量的赋值。然后,您可以按照自己的方式创建保存命令
您可以使用要存储值的键创建新数组,并代替 echo 将这些值推送到该数组。以上是关于从多维数组中获取值的主要内容,如果未能解决你的问题,请参考以下文章