Php FOR的逻辑不起作用,我没有发现问题

Php FOR的逻辑不起作用,我没有发现问题,php,for-loop,Php,For Loop,我有一个逻辑问题,我不知道为什么会发生这种情况,也不知道如何解决它。我有一个JSON文件,我想对值进行更改并将其存储在数组中 JSON文件 PHP代码 但我得到的回报是: 在最后一个数组的电影数组中,不应存在属于第一个数组的键[4]。我看不出问题出在哪里。我的逻辑有什么问题导致它发生,或者如何纠正它。也许是这个问题 $values = json_decode(file_get_contents('json_file.json'), true); $news = array(); foreac

我有一个逻辑问题,我不知道为什么会发生这种情况,也不知道如何解决它。我有一个JSON文件,我想对值进行更改并将其存储在数组中

JSON文件 PHP代码 但我得到的回报是: 在最后一个数组的电影数组中,不应存在属于第一个数组的键[4]。我看不出问题出在哪里。我的逻辑有什么问题导致它发生,或者如何纠正它。

也许是这个问题

$values = json_decode(file_get_contents('json_file.json'), true);

$news = array();

foreach ($values["info"] as $key => $value){
        $news[$key]["actress"] =  $value["actress"];
        $news[$key]["actress-id"] = $value["actress-id"];
        $news[$key]["actress-slug"] =  $value["actress-slug"];

        $movies_array  = array();

        foreach ($value["week"]["movies"] as $key2 => $value2) {

           if($value2["post_status"] == "pending"):
              $movies_array[] = array('id' => $value2['id'], 'titulo' => $value2['titulo'], 'post_status' => 'draft', 'category' => $value2['category']);
           endif;

        }

    $news[$key]["week"]["movies"] = $movies_array;

}

var_dump($news);

这很好,而且很有效。但如果有人能解释我的逻辑问题是什么,我还是会留下问题。我仍然不明白为什么我所做的并没有像预期的那样工作,PHP添加了一个不应该存在的键,因为您在每次迭代中对$news使用var_dump,而不刷新它。在第一次迭代中,插入了$news[“week”][“movies”][4],并保留到第二次迭代中-这就是为什么。只需清空$news,就可以了。
$values = json_decode(file_get_contents('json_file.json'), true);

$news = array();

foreach ($values["info"] as $key => $value){

    for($i = 0; $i < count($value["week"]["movies"]); $i++){

        if($value["week"]["movies"][$i]["post_status"] == "pending"):


            $news["actress"] =  $value["actress"];


        $news["actress-id"] = $value["actress-id"];
        $news["actress-slug"] =  $value["actress-slug"];

        $news["week"]["movies"][$i] =  $value["week"]["movies"][$i];

        $news["week"]["movies"][$i]["post_status"] = "draft";



        endif;
                            //$news = $news;
    }

    var_dump($news);
}
    array(4) {
  ["actress"]=>
  string(16) "Evan Rachel Wood"
  ["actress-id"]=>
  string(3) "162"
  ["actress-slug"]=>
  string(16) "evan-rachel-wood"
  ["week"]=>
  array(1) {
    ["movies"]=>
    array(5) {
      [0]=>
      array(4) {
        ["id"]=>
        string(7) "1930500"
        ["titulo"]=>
        string(46) "At imperdiet convallis blandit nisl elementum."
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(6) "comedy"
      }
      [1]=>
      array(4) {
        ["id"]=>
        string(7) "1930499"
        ["titulo"]=>
        string(40) "Porttitor pellentesque imperdiet rutrum."
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(5) "drama"
      }
      [2]=>
      array(4) {
        ["id"]=>
        string(7) "1930498"
        ["titulo"]=>
        string(59) "Quam aenean cursus congue vivamus neque luctus libero quam."
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(19) "adventure"
      }
      [3]=>
      array(4) {
        ["id"]=>
        string(7) "1930497"
        ["titulo"]=>
        string(69) "Sapien ultrices auctor congue enim donec conubia egestas vel senectus"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(6) "comedy"
      }
      [4]=>
      array(4) {
        ["id"]=>
        string(7) "1930444"
        ["titulo"]=>
        string(62) "Imperdiet at inceptos condimentum non dictumst primis interdum"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        NULL
      }
    }
  }
}
array(4) {
  ["actress"]=>
  string(14) "Elisabeth Moss"
  ["actress-id"]=>
  string(3) "217"
  ["actress-slug"]=>
  string(14) "elisabeth-moss"
  ["week"]=>
  array(1) {
    ["movies"]=>
    array(5) {
      [0]=>
      array(4) {
        ["id"]=>
        string(7) "1930443"
        ["titulo"]=>
        string(57) "Rhoncus aliquet proin ut curabitur sit vestibulum feugiat"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(9) "adventure"
      }
      [1]=>
      array(4) {
        ["id"]=>
        string(7) "1930442"
        ["titulo"]=>
        string(71) "Mi himenaeos elementum conubia varius porta habitant hendrerit sociosqu"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(5) "drama"
      }
      [2]=>
      array(4) {
        ["id"]=>
        string(7) "1930440"
        ["titulo"]=>
        string(56) "Duis massa maecenas platea purus vel arcu duis vulputate"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(6) "action"
      }
      [3]=>
      array(4) {
        ["id"]=>
        string(7) "1930393"
        ["titulo"]=>
        string(56) "Elit semper massa fringilla molestie bibendum, hendrerit"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(5) "drama"
      }
    }
  }
}
array(4) {
  ["actress"]=>
  string(16) "Evan Rachel Wood"
  ["actress-id"]=>
  string(3) "162"
  ["actress-slug"]=>
  string(16) "evan-rachel-wood"
  ["week"]=>
  array(1) {
    ["movies"]=>
    array(5) {
      [0]=>
      array(4) {
        ["id"]=>
        string(7) "1930500"
        ["titulo"]=>
        string(46) "At imperdiet convallis blandit nisl elementum."
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(6) "comedy"
      }
      [1]=>
      array(4) {
        ["id"]=>
        string(7) "1930499"
        ["titulo"]=>
        string(40) "Porttitor pellentesque imperdiet rutrum."
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(5) "drama"
      }
      [2]=>
      array(4) {
        ["id"]=>
        string(7) "1930498"
        ["titulo"]=>
        string(59) "Quam aenean cursus congue vivamus neque luctus libero quam."
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(19) "adventure"
      }
      [3]=>
      array(4) {
        ["id"]=>
        string(7) "1930497"
        ["titulo"]=>
        string(69) "Sapien ultrices auctor congue enim donec conubia egestas vel senectus"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(6) "comedy"
      }
      [4]=>
      array(4) {
        ["id"]=>
        string(7) "1930444"
        ["titulo"]=>
        string(62) "Imperdiet at inceptos condimentum non dictumst primis interdum"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        NULL
      }
    }
  }
}
array(4) {
  ["actress"]=>
  string(14) "Elisabeth Moss"
  ["actress-id"]=>
  string(3) "217"
  ["actress-slug"]=>
  string(14) "elisabeth-moss"
  ["week"]=>
  array(1) {
    ["movies"]=>
    array(5) {
      [0]=>
      array(4) {
        ["id"]=>
        string(7) "1930443"
        ["titulo"]=>
        string(57) "Rhoncus aliquet proin ut curabitur sit vestibulum feugiat"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(9) "adventure"
      }
      [1]=>
      array(4) {
        ["id"]=>
        string(7) "1930442"
        ["titulo"]=>
        string(71) "Mi himenaeos elementum conubia varius porta habitant hendrerit sociosqu"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(5) "drama"
      }
      [2]=>
      array(4) {
        ["id"]=>
        string(7) "1930440"
        ["titulo"]=>
        string(56) "Duis massa maecenas platea purus vel arcu duis vulputate"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(6) "action"
      }
      [3]=>
      array(4) {
        ["id"]=>
        string(7) "1930393"
        ["titulo"]=>
        string(56) "Elit semper massa fringilla molestie bibendum, hendrerit"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        string(5) "drama"
      }
      [4]=>
      array(4) {
        ["id"]=>
        string(7) "1930444"
        ["titulo"]=>
        string(62) "Imperdiet at inceptos condimentum non dictumst primis interdum"
        ["post_status"]=>
        string(5) "draft"
        ["category"]=>
        NULL
      }
    }
  }
}
$values = json_decode(file_get_contents('json_file.json'), true);

$news = array();

foreach ($values["info"] as $key => $value){
        $news[$key]["actress"] =  $value["actress"];
        $news[$key]["actress-id"] = $value["actress-id"];
        $news[$key]["actress-slug"] =  $value["actress-slug"];

        $movies_array  = array();

        foreach ($value["week"]["movies"] as $key2 => $value2) {

           if($value2["post_status"] == "pending"):
              $movies_array[] = array('id' => $value2['id'], 'titulo' => $value2['titulo'], 'post_status' => 'draft', 'category' => $value2['category']);
           endif;

        }

    $news[$key]["week"]["movies"] = $movies_array;

}

var_dump($news);