为了账号安全,请及时绑定邮箱和手机立即绑定

如何将两个数组合并为一个并转置结构以简化循环打印

如何将两个数组合并为一个并转置结构以简化循环打印

PHP
泛舟湖上清波郎朗 2024-01-19 10:11:25
我怎样才能组合2个数组...:$array_1 = [['title' => 'Google'], ['title' => 'Bing']];$array_2 = [['link' => 'www.example1.com'], ['link' => 'www.example2.com']];为了得到 ... :$array_3 = [    ['title' => 'Google', 'link' => 'www.example1.com'],    ['title' => 'Bing', 'link' => 'www.example2.com']];我想$array_3应该按以下方式构建才能得到:最后结果:Google - See websiteBing - See website得到最终结果的函数:function site_and_link($array_3) {    foreach ($array_3 as $a) {        echo $a['title'] . " - <a href=" . $a['link'] . ">See website</a></br>";    }}缺少什么安排步骤$array_3?
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

您可以使用一个简单的foreach循环array_merge来合并两个子数组。

<?php


$result = [];

foreach($array_1 as $index => $val){

  $result[] = array_merge($val,$array_2[$index]);

}


print_r($result);


查看完整回答
反对 回复 2024-01-19
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

使用循环合并转置数组数据,然后使用另一个循环打印到屏幕是间接编程。

理想情况下,如果可能的话,您应该尝试在代码的早期合并这些结构(我不知道这些数据集来自哪里,所以我无法提供建议。)

否则,保持两个数组不合并,只编写一个循环来打印到屏幕上。由于两个数组预计通过索引相互关联,因此不会有生成通知的风险。

既然我正在写这篇文章,我将借此机会透露一些有用的技巧:

  1. 您可以使用数组语法来解压单元素子数组,其中静态键指向foreach().

  2. 使用printf()可以帮助减少由串联/插值引起的在线膨胀/混淆。通过将占位符 ( %s) 写入字符串,然后在尾随参数中传递这些占位符的值,通常可以提高可读性。

代码:(演示

$sites = [['title' => 'Google'], ['title' => 'Bing']];

$links = [['link' => 'www.example1.com'], ['link' => 'www.example2.com']];


foreach ($sites as $index => ['title' => $title]) {

    printf(

        '%s - <a href="%s">See website</a></br>',

        $title,

        $links[$index]['link']

    );

}

输出:


Google - <a href="www.example1.com">See website</a></br>

Bing - <a href="www.example2.com">See website</a></br>


查看完整回答
反对 回复 2024-01-19
  • 2 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信