我使用foreach打印所有键和值。 " $ devicename_key"正在打印好的钥匙但是" $ devicetype_key"不打印。我看到数组中存在129的值。
我有一行ID在一行中,而值在下一行,它来自数据库,我可以用这样的东西清理它。如果有其他方法可以这样做,请随时告诉我。
我得到的密钥为128添加1,然后打印128的值.129不打印。
Key=0, Value=:128
Key=1, Value=:TCM-7811
Key=2, Value=:129
Key=3, Value=:2
Key=4, Value=:130
Key=5, Value=:3
foreach($extrafield_info as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
// device name 128
$deviceid_key = array_search('128', $extrafield_info);
//echo 'device id key is ' . $deviceid_key;
$devicename_key = $deviceid_key +1 ;
//echo 'device key is ' . $devicename_key;
// device type 129
if (array_key_exists('129', $extrafield_info)) {
$devicetype_key = array_search('129', $extrafield_info);
echo 'key is ' . $devicetype_key;
}
答案 0 :(得分:0)
您在最后的array_key_exists
支票中正在if
,但129不是关键,而是价值。
答案 1 :(得分:0)
我想我明白你要做的是什么:
$extrafield_info[] = 128;
$extrafield_info[] = 'TCM-7811';
$extrafield_info[] = 129;
$extrafield_info[] = 2;
$extrafield_info[] = 130;
$extrafield_info[] = 3;
// Fetch key value for 128 (ends up being 0)
$deviceid_key = array_search(128, $extrafield_info);
// Get next key (should be now 1)
$devicename_key = ($deviceid_key +1) ;
// Insert next key for search for new $devicename_key (1)
if(array_key_exists($devicename_key, $extrafield_info)) {
// Should return key 2
$devicetype_key = array_search(129, $extrafield_info);
echo 'key is ' . $devicetype_key;
}