【问题标题】:delete the last items of an array [closed]删除数组的最后一项[关闭]
【发布时间】:2018-09-05 19:55:27
【问题描述】:

我在数据库中有一个表,我从中得到一个 JSON。

当我解码结果时,我有一个这样的数组:

array("1" => "Jason" ,
      "2" => "Jimmy" ,
      "3" => "Christopher" , 
      "4" => "Bruce" , 
      "5" => "james" , 
      "6" => "Mike" ,
      "7" => "Brad" );

添加新项目时如何从数据库中删除最后的项目。

例如:

当我添加 WalterKevin 时,代码会从 DB 中删除 BradMike

array("1" => "Walter" ,
      "2" => "Kevin" ,
      "3" => "Jason" ,
      "4" => "Jimmy" ,
      "5" => "Christopher" , 
      "6" => "Bruce" , 
      "7" => "james"  );

【问题讨论】:

  • 那么密钥 6,7 呢?
  • 阅读 PHP arrays。所有的答案都在那里。
  • 您用于数据库的代码怎么样?您所描述的只是您想要的,而不是您如何到达这里的。见minimal reproducible example
  • 这是一个 XY 问题。
  • JSON 是从一组记录中生成的,还是作为文本存储在单个记录中?在不了解数据库中数据结构的情况下,实际上不可能提供可接受的答案。

标签: php mysql arrays


【解决方案1】:
       $a=  array("1" => "Jason" ,
              "2" => "Jimmy" ,
              "3" => "Christopher" , 
              "4" => "Bruce" , 
              "5" => "james" , 
              "6" => "Mike" ,
              "7" => "Brad" );
      $b = array_pop($a) ;
var_dump ($a) ; // this all item without Brad ,
$b // This is Brad ; 

将元素添加到数组中

array_push($a ,"New Name");

【讨论】:

  • 他提到了一个数据库,所以这可能不是他想要做的。
  • 我看到他需要从数组中更改元素:),所以我写了关于数组,因为他问数组我想他实际上想要做什么来为 json 添加 status=>'done' 但很复杂方式:)
【解决方案2】:

可以使用 array_shift / array_unshift,但由于逻辑似乎颠倒了,你可以使用类似的东西

     <?php


    $apparentDB = array("1" => "Jason" ,
          "2" => "Jimmy" ,
          "3" => "Christopher" , 
          "4" => "Bruce" , 
          "5" => "james" , 
          "6" => "Mike" ,
          "7" => "Brad" );
  /*  You can add it one by one
    $addName = "Walter";
    $apparentDB = addName($addName, $apparentDB);
    $addSecondName = "Kevin";
    $apparentDB = addName($addSecondName, $apparentDB);
*/

// Or you can also modify to work on an array of new names
    $newNames = array("Walter", "Kevin");
    foreach($newNames as $newName) {
        $apparentDB = addName($newName, $apparentDB);
    }
    var_dump($apparentDB);

    function addName($nameToAdd, $apparentDB) {

        for ($i = count($apparentDB); $i > 1; $i--) {
            $apparentDB["".$i] = $apparentDB["".($i-1)];
        }

        $apparentDB["1"] = $nameToAdd;

        //var_dump($apparentDB);
        return $apparentDB;
    }

*你可以在这里测试:http://sandbox.onlinephpfunctions.com/ *

【讨论】:

  • 可以,但是当我插入两个值时,它会显示两个数组
  • 也许这个改变会有所帮助
猜你喜欢
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 2014-12-17
  • 2021-11-25
  • 2014-12-30
  • 1970-01-01
相关资源
最近更新 更多