数组搜索,而不是多次打印ket值

时间:2014-12-09 21:28:45

标签: php

我使用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;
    }

2 个答案:

答案 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;
}