无法使用PHP从关联数组中删除键值

时间:2018-11-27 06:48:19

标签: php arrays

我正在尝试使用PHP从一个关联数组中删除键值,但该键值无法正常工作。我在下面解释我的代码。

<?php
$resultArr=array(array("stars"=>"3","starcount"=>3),array("stars"=>"4","starcount"=>4),array("stars"=>"5","starcount"=>5));
foreach ($resultArr as $key => $value) {
    if (array_key_exists("stars", $value)) {
        unset($value['stars']);
    }
}
echo json_encode($resultArr);
?>

在这里,我需要从json数组中删除所有stars键及其值,但是我的代码无法正常工作。

3 个答案:

答案 0 :(得分:0)

尝试一下

$resultArr=array(array("stars"=>"3","starcount"=>3),array("stars"=>"4","starcount"=>4),array("stars"=>"5","starcount"=>5));
foreach ($resultArr as $key => $value) {
    if (array_key_exists("stars", $value)) {
        unset($resultArr[$key]['stars']);
    }
}
echo json_encode($resultArr);

说明

您应该使用$ key从$ resultArr数组中取消设置键

答案 1 :(得分:0)

分隔键和值:

foreach ($resultArr as $key => $value) {
 echo $key;
 echo $value
}

答案 2 :(得分:0)

Foreach语句复制value,这意味着$ value变量具有元素的副本而不是原始元素。 您可以使用按键访问来直接访问数组元素,例如:

foreach ($resultArr as $key => $value) {
    if (array_key_exists("stars", $value)) {
        unset($resultArr[$key]['stars']);
    }
}

此外,您可以使用references

foreach ($resultArr as $key => &$value) {
    if (array_key_exists("stars", $value)) {
        unset($value['stars']);
    }
}