【发布时间】:2016-05-19 12:07:57
【问题描述】:
我已经存储了一个基于 post 值的数组,其中存储了多个数组,示例如下(键号可能因用户输入而异):
Array (
[1] => Array
([system] => A [serial]=> 12345L)
[3] => Array
([system] => B [serial] =>)
[4] => Array
([system] => D [serial] => 56789L [licence] => ABCD1-EFGH2-IJKL3-MNOP4-QRST5)
[5] => Array
([serial] => 98765L [licence] => 1234567890)
)
注意:我不确定是否值得一提,但对于上面的示例,数组键是 1345,但它可能是 123456 或 56,等等...
我想检查每个数组是否都有一个系统密钥和一个串行密钥,并且这些密钥都有一个值。许可证密钥是可选的。
所以理论上我的示例意味着 1 和 4 是有效的,但 3 不是因为它缺少序列值,也不是 5,因为它没有系统键。
我对如何处理这件事有点迷茫,因为它一开始就在一个数组中。但是,我做了以下非常初级的,我可以想象效率很低。
foreach($sys_arr as $k => $v) {
if (is_array($v) == true) {
foreach($v as $key => $value) {
if ($key = "system" && $value == null) {
echo "Error: System has no value<br>";
} elseif ($key = "serial" && $value == null) {
echo "Error: Serial has no value<br>";
} else {
echo "Both keys have values<br>";
}
}
if (!array_key_exists("system", $v)) {
echo "Error: No System Key<br>";
} elseif (!array_key_exists("serial", $v)) {
echo "Error: No Serial Key<br>";
} else {
echo "Both Keys exist!<br>";
}
}
}
有人可以就我如何改进这一点提供任何建议吗?
【问题讨论】:
-
你能提供你需要的输出吗?
-
您的问题解决了吗? :)
标签: php arrays multidimensional-array key