【发布时间】:2018-06-12 16:46:11
【问题描述】:
我有一个来自 XML 文件的多维数组,我想将它与普通数组进行比较。我需要将多维数组中的 [tag] 名称与另一个数组中的名称进行比较,并从属于该标签的多维数组中获取值。
Array
(
[0] => Array
(
[tag] => DOCUMENT
[type] => open
[level] => 1
)
[1] => Array
(
[tag] => SENDERID
[type] => complete
[level] => 2
[value] => TEST
)
[2] => Array
(
[tag] => SENDERSHORTNAME
[type] => complete
[level] => 2
)
[3] => Array
(
[tag] => RECIPIENTID
[type] => complete
[level] => 2
[value] => VGLEE
)
)
我需要将它与多维数组进行比较的第二个数组:
$compare_array = array('DOCUMENT', 'SENDERID', 'SENDERSHORTNAME', 'RECIPIENTID');
现在我想检查 $compare_array 中的键是否在多维数组中匹配。如果是这样,我想从多维数组中获取值并使用 compare_array 中的名称创建一个变量并将值附加到变量中。
我做了一个for循环:
for($i = 0; $i < $count; $i++){
if($values[$i]['tag'] == 'SENDERID'){
$SENDER = $values[$i]['value'];
}
if($values[$i]['tag'] == 'RECIPIENTID'){
$RECIPIENTID = $values[$i]['value'];
}
if($values[$i]['tag'] == 'IREF'){
$IREF = $values[$i]['value'];
}
if($values[$i]['tag'] == 'DOCUMENTNUMBER'){
$DOCUMENTNUMBER = $values[$i]['value'];
}
}
【问题讨论】:
-
你的试验在哪里?您可以从使用 foreach 和 if 开始
-
@Ghost 查看更新后的问题。这是我第一次做的,但我认为一定有更简单的方法。
-
我不知道你为什么需要这样的东西,但是,你可能会为所有意图和目的使用可变变量,但我建议只按标签对它们进行分组,将它们保存为数组但使用标签作为键
-
@Ghost 从 XML 文件中我得到了 61 个键,我需要部分键+值。这就是为什么我想列出一个清单并进行比较。如果列表发生变化,我可以动态进行更改。
-
它仍然可以正常工作,如果它们被分组在一个数组中,您可以在它们具有相同标签时推送它们,here's what i'm suggesting