加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 为现有数组添加键和值

发布时间:2020-12-13 16:47:24 所属栏目:PHP教程 来源:网络整理
导读:我需要为现有数组添加键和值,似乎无法将它们组合在一起. 打印时我现有的数组如下所示: Array( [0] = stdClass Object ( [id] = 787 [name] = Steve [surname] = Ryan [email] = Steve@hotmail.com ) [1] = stdClass Object ( [id] = 1057 [name] = Peter [s
我需要为现有数组添加键和值,似乎无法将它们组合在一起.

打印时我现有的数组如下所示:

Array
(
    [0] => stdClass Object
        (
            [id] => 787
            [name] => Steve
            [surname] => Ryan
            [email] => Steve@hotmail.com
        )

    [1] => stdClass Object
        (
            [id] => 1057
            [name] => Peter
            [surname] => Smith
            [email] => Peter.Smith@yahoo.com
        )

    [2] => stdClass Object
        (
            [id] => 1058
            [name] => Chris
            [surname] => Gill
            [email] => chrisgill@gmail.com
        )

)

我需要从一个看起来像这样的字符串中动态添加一些细节到这个数组:

Topher:Topher1234@mac.com
Elvis:elvispresley@gmail.com
Marilyn:marilyn.monroe@hotmail.com

每个条目都由一个新行分隔,名称和电子邮件地址由以下部分分隔:

所以最后我的数组看起来像这样:

Array
(
    [0] => stdClass Object
        (
            [id] => 787
            [name] => Steve
            [surname] => Ryan
            [email] => Steve@hotmail.com
        )

    [1] => stdClass Object
        (
            [id] => 1057
            [name] => Peter
            [surname] => Smith
            [email] => Peter.Smith@yahoo.com
        )

    [2] => stdClass Object
        (
            [id] => 1058
            [name] => Chris
            [surname] => James
            [email] => chrisjames@gmail.com
        )
    [3] => stdClass Object
        (
            [id] => 
            [name] => Topher
            [surname] => 
            [email] => Topher1234@mac.com
        )
    [4] => stdClass Object
        (
            [id] => 
            [name] => Elvis
            [surname] => 
            [email] => elvispresley@gmail.com
        )
    [5] => stdClass Object
        (
            [id] => 
            [name] => Marilyn
            [surname] => 
            [email] => marilyn.monroe@hotmail.com
        )

)

我查看了array_push但无法解决问题.

对此的任何帮助都非常受到重视.

C

解决方法

使用PHP Arrays'[]运算符与将值推送到数组末尾相同.

$arr[] = 'new element in array';

你的例子的完整解决方案将是

$CharacterInput = <<<EOT
Topher:Topher1234@mac.com
Elvis:elvispresley@gmail.com
Marilyn:marilyn.monroe@hotmail.com
EOT;

$lines = explode("n",$CharacterInput);

$People = array();

foreach($lines as $line) {
    list($name,$email) = explode(':',$line);

    $entry = array(
        'id' => null,'name' => $name,'surname' => null,'email' => $email,);

    // cast the entered data array to an object,// which is explicitly stated in the example output.
    // For plain arrays,remove the following line.
    $entry = (object) $entry;

    $People[] = $entry;
}

print_r($People);

哪个输出

Array
(
 [0] => stdClass Object
 (
 [id] => 
 [name] => Topher
 [surname] => 
 [email] => Topher1234@mac.com
 )

 [1] => stdClass Object
 (
 [id] => 
 [name] => Elvis
 [surname] => 
 [email] => elvispresley@gmail.com
 )

 [2] => stdClass Object
 (
 [id] => 
 [name] => Marilyn
 [surname] => 
 [email] => marilyn.monroe@hotmail.com
 )

)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读