文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

在 PHP 中将数组添加到数组

2024-02-27 20:31

关注

数组包含一系列相同数据类型的索引元素,通常用于更快的迭代和数据管理。

通常,要访问数组元素,你将遍历数组。例如,在 PHP 应用程序中,一个数组可以保存注册表单中的数据,而另一个数组可以保存帐户详细信息部分的数据。要在一个序列中使用两个数组,我们需要添加两个数组。为此,我们需要将第二个数组附加到第一个数组,不同的函数表现不同。

本文讨论了在 PHP 中将两个数组相加形成一个数组的不同方法。


在 PHP 中使用 forforeach 循环将数组添加到数组

将一个数组添加到另一个数组的一种简单方法是选择第二个数组,遍历所有元素,然后将每个元素附加到第一个数组。但是,对于较大的阵列,这种特殊的解决方案相当长且效率低下。


$container = ["hair extension", "scissors"];
$shopping_lists = ["hair cream", "hair fryer", "makeup set"];
for($index = 0; $index < count($shopping_lists ); $index++){
    array_push($container, $shopping_lists[$index]);
}
print_r($container)

输出:


Array
(
    [0]    hair extension
    [1]    scissors
    [2]    hair cream
    [3]    hair fryer
    [4]    makeup set
)
   true

此外,你可以将相同的方法应用于关联数组。但是,它具有同样的低效率和复杂性。


$customer = array( 
    "name" => "Garner", 
    "email" => "g.abded@gmail.com", 
    "age" => 34, 
    "gender" => "female",
    "account_type" => "starter"
); 

$account = array(
    "current_course" => "Ruby Crash Course",
    "payment_channel" => "Stripe",
    "browser" => "Edge"
);

foreach($account as $key => $value) {
    $customer[$key] = $value;
}

print_r($customer)

输出:


Array
(
    [name]    Garner
    [email]    g.abded@gmail.com
    [age]    34
    [gender]    female
    [account_type]    starter
    [current_course]    Ruby Crash Course
    [payment_channel]    Stripe
    [browser]    Edge
)
   true

在 PHP 中使用 array_merge() 函数将数组添加到数组

array_merge() 函数合并两个或多个数组,并将一个数组的元素附加到前一个数组的末尾,依此类推,直到最后一个数组。此函数适用于索引、关联和多维数组。与前面的方法不同,这种方法创建一个新数组并且不会追加到第一个数组。

此方法可以与多个数组一起使用。更详细地说,我们可以使用这种方法将键值对(关联数组)相互添加以形成一个单独的数组。索引数组也是如此。


$details = [
    "name" => "Clement",
    "email" => "clement@gmail.com",
    "gender" => "male"
];

$accounts = [
    "card" => "mastercard",
    "processor" => "stripe",
    "pro" => True
];

$account_details = array_merge($details, $accounts);

print_r($account_details);

输出:


Array
(
    [name]    Clement
    [email]    clement@gmail.com
    [gender]    male
    [card]    mastercard
    [processor]    stripe
    [pro]    1
)
   true

以下是如何在三个数组上使用 array_merge() 函数。


$details = [
    "name" => "Clement",
    "email" => "clement@gmail.com",
    "gender" => "male"
];
$accounts = [
    "card" => "mastercard",
    "processor" => "stripe",
    "pro" => True
];
$functions = [
    "movies" => "inferno"
];
$account_details = array_merge($details, $accounts, $functions);
print_r($account_details);

输出:


Array
(
    [name]    Clement
    [email]    clement@gmail.com
    [gender]    male
    [card]    mastercard
    [processor]    stripe
    [pro]    1
    [movies]    inferno
)
   true

此方法兼容所有 PHP 7.0 及以上版本。


在 PHP 中使用 array_push() 函数将数组添加到数组

array_push() 函数将数组推送到数组的末尾,就像堆栈 (LIFO)。你可以使用【此功能】将索引数组添加到关联数组中,它会自动为推送到关联数组的索引数组创建一个数字索引。如果推送两个索引数组,第一个索引数组保存数字索引 0,第二个索引数组保存数字索引 1。对于推送的 N 个数组,数字索引将为 N-1

此外,你可以将索引数组推送到索引数组,将关联数组推送到关联数组。


$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Geology', 'Machine Learning'];
$BD_Tools = array_push($basic_data, $tools);

print_r($basic_data);

输出:


Array
(
    [Location]    Mumbai
    [Tier]    Three
    [0]    Array
        (
            [0]    Geology
            [1]    Machine Learning
        )
)
   true

此外,使用 array_push() 函数中的 ... 运算符允许被推入的数组中的所有元素都有自己的数字索引,而不是一个为所有的。


$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Geology', 'Machine Learning'];
$BD_Tools = array_push($basic_data, ...$tools);

print_r($basic_data);

输出:


Array
(
    [Location]    Mumbai
    [Tier]    Three
    [0]    Geology
    [1]    Machine Learning
)
   true

对于关联数组推送操作,不能使用 ... 运算符,因为它会引发错误。


TypeError: array_push() 不接受未知的命名参数 null

因此,对两个或更多数组使用 array_push() 函数的唯一方法是通过默认方式。


$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Course' => 'Geology', 'Approach' => 'Machine Learning'];
$BD_Tools = array_push($basic_data, $tools);

print_r($basic_data);

输出:


Array
(
    [Location]    Mumbai
    [Tier]    Three
    [0]    Array
        (
            [Course]    Geology
            [Approach]    Machine Learning
        )

)
   true
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯