array_keys返回除正确结果以外的错误结果

时间:2019-02-11 15:11:48

标签: php arrays

(问题已编辑) 我一直在为此脚本苦苦挣扎,无法使其正常工作。

$array = array(
    0 => array(
        'description'     => 'Permanent modification of a ship\'s shield facilities.',
        'hasTypes'        => 'false',
        'iconID'          => 2703,
        'marketGroupID'   => 954,
        'marketGroupName' => 'Shield Rigs',
        'parentGroupID'   => 943
    ),
    1 => array('description'     =>
        'Equipment modules for spaceships, including many types of weapon, electronic, engineering, armor, shield and propulsion systems',
        'hasTypes'        => 'false',
        'iconID'          => 1432,
        'marketGroupID'   => 9,
        'marketGroupName' => 'Ship Equipment',
        'parentGroupID'   => 'TesT'
    )
);

$keys = array_keys(array_column($array, 'parentGroupID'), 'TesT',true);

var_dump($keys);

此方法有效,但完整的脚本返回其parentGroupID值与TesT不同的键。

complete script with full array

通过添加以下内容来完成脚本,显示array_keys返回的所有键上的parentgroupid不等于TesT。

$response = array();
foreach($keys as $key){
$response[$key] = $array[$key]['parentGroupID'];


}

var_dump($response);

1 个答案:

答案 0 :(得分:0)

使用

$op = array();
foreach($ar as $value){
if($value['parentGroupID'] === 'TesT'){
array_push($op,$value);
}

}

代替

$keys = array_keys(array_column($array, 'parentGroupID'), 'TesT',true);

给我正确的结果。