drjyvoi734793 2018-01-30 02:44
浏览 126
已采纳

带有数字键的stdClass的array_push

I'm trying to use a function similar to array_push but for objects (stdClass) in PHP. See what I expect:

<?php
$obj = new stdClass();
$obj->a = 'foo';
$obj->{'0'} = 'far';

var_dump($obj);
// > object(stdClass)#1 (2) { ["a"]=> string(3) "foo" ["0"]=> string(3) "far" }

var_dump(object_push($obj, 'coin'));
// > object(stdClass)#1 (3) { ["a"]=> string(3) "foo" ["0"]=> string(3) "far" ["1"]=> string(4) "coin" }
  • 写回答

1条回答 默认 最新

  • dp815292 2018-01-30 02:45
    关注

    You can use this function object_push:

    function object_push($object, $value) {
        $object->{max(array_filter(array_keys((array) $object), 'is_numeric') + [-1]) + 1} = $value;
        return $object;
    }
    

    Use it then as you would use array_push:

    $obj = new stdClass();
    $obj->a = 'foo';
    $obj->{'0'} = 'far';
    
    var_dump($obj);
    // > object(stdClass)#1 (2) { ["a"]=> string(3) "foo" ["0"]=> string(3) "far" }
    
    var_dump(object_push($obj, 'coin'));
    // > object(stdClass)#1 (3) { ["a"]=> string(3) "foo" ["0"]=> string(3) "far" ["1"]=> string(4) "coin" }
    

    Peace

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决