Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 三个数组之间的数组合并_Php_Arrays - Fatal编程技术网

Php 三个数组之间的数组合并

Php 三个数组之间的数组合并,php,arrays,Php,Arrays,我有以下阵列输出: [38] => x._domainkey 14400 IN TXT ( "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApYA+ELn4SxsERDFgUB9pUnB4PjbcUlSJoLHAlCq1MLVA3NxgLKSAz+lSczyMH97Y/xOpJf1X1LSoGgNh5GVRn0t" [39] => "pm1QOPfKbNH

我有以下阵列输出:

[38] => x._domainkey    14400   IN  TXT ( "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApYA+ELn4SxsERDFgUB9pUnB4PjbcUlSJoLHAlCq1MLVA3NxgLKSAz+lSczyMH97Y/xOpJf1X1LSoGgNh5GVRn0t"
[39] =>                     "pm1QOPfKbNHx8VMNn4L/KZSPGFyySDUK/UPnF1QoMckoU5a/LgtI8x1ttry5oySDTY9KprVAf92uK6pOFQJA3QlzV2P+R4tx/zho5KlDHmc8YKjL7rLjgQVX7GUBi9cHr0+BQdVFgFL8SwBY8fn/CQ"
[40] =>                     "42JMsEWcMjjEkbAwi9yscGQoTih+kctjr4W8LDF28vyJixozbaFpG8pJ+jGDAho+Zjt/XReOZQP0h51Y8md3/x/F0+gST4mn0mCskNtIQIDAQAB" )
我怎样才能在de-following构造中得到这个

[38] => x._domainkey    14400   IN  TXT ( "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApYA+ELn4SxsERDFgUB9pUnB4PjbcUlSJoLHAlCq1MLVA3NxgLKSAz+lSczyMH97Y/xOpJf1X1LSoGgNh5GVRn0tpm1QOPfKbNHx8VMNn4L/KZSPGFyySDUK/UPnF1QoMckoU5a/LgtI8x1ttry5oySDTY9KprVAf92uK6pOFQJA3QlzV2P+R4tx/zho5KlDHmc8YKjL7rLjgQVX7GUBi9cHr0+BQdVFgFL8SwBY8fn/CQ42JMsEWcMjjEkbAwi9yscGQoTih+kctjr4W8LDF28vyJixozbaFpG8pJ+jGDAho+Zjt/XReOZQP0h51Y8md3/x/F0+gST4mn0mCskNtIQIDAQAB" )
有一条规则

我尽了最大努力,得到了多个数组的输出,但没有一条规则:

Array ( 
  [0] => x._domainkey 
  [1] => 14400 
  [3] => TXT 
  [4] => ( "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApYA+ELn4SxsERDFgUB9pUnB4PjbcUlSJoLHAlCq1MLVA3NxgLKSAz+lSczyMH97Y/xOpJf1X1LSoGgNh5GVRn0t" 
) 

Array ( 
  [0] => 
  [1] => 
  [2] => 
  [3] => 
  [4] => 
  [5] => "pm1QOPfKbNHx8VMNn4L/KZSPGFyySDUK/UPnF1QoMckoU5a/LgtI8x1ttry5oySDTY9KprVAf92uK6pOFQJA3QlzV2P+R4tx/zho5KlDHmc8YKjL7rLjgQVX7GUBi9cHr0+BQdVFgFL8SwBY8fn/CQ" 
) 

Array ( 
  [0] => 
  [1] => 
  [2] => 
  [3] => 
  [4] => 
  [5] => "42JMsEWcMjjEkbAwi9yscGQoTih+kctjr4W8LDF28vyJixozbaFpG8pJ+jGDAho+Zjt/XReOZQP0h51Y8md3/x/F0+gST4mn0mCskNtIQIDAQAB" ) 
)

我希望两个数组[5]在[4]之后的一个规则上,这可能吗?

这不是数组合并,而是字符串连接

$array[38] .= $array[39] . $array[40]; // combine the 3 lines into one
array_splice($array, 39, 2); // remove the continuation lines

每当一行包含
在值之前)时,您就需要执行此操作。您必须获取所有行,直到匹配的
并将它们连接起来。

在执行一些清理(删除引号、圆括号等)后,您需要连接元素。在本例中,我从第一个元素中删除了最后一个字符(要删除尾随引号,可以是
trim()
trim()
),并使用
trim()
删除接下来两个元素的前导引号和尾随引号

如果这三个元素的位置是动态的,则首先搜索一个可能是您的用例所特有的值(在我的示例中,我使用
domainkey
),并使用该键作为连接的基础:

<?php
$records = [
2 => "gibberish",
5 => "garbage",
38 => 'x._domainkey    14400   IN  TXT ( "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApYA+ELn4SxsERDFgUB9pUnB4PjbcUlSJoLHAlCq1MLVA3NxgLKSAz+lSczyMH97Y/xOpJf1X1LSoGgNh5GVRn0t"',
39 =>                     '"pm1QOPfKbNHx8VMNn4L/KZSPGFyySDUK/UPnF1QoMckoU5a/LgtI8x1ttry5oySDTY9KprVAf92uK6pOFQJA3QlzV2P+R4tx/zho5KlDHmc8YKjL7rLjgQVX7GUBi9cHr0+BQdVFgFL8SwBY8fn/CQ"',
40 =>                     '"42JMsEWcMjjEkbAwi9yscGQoTih+kctjr4W8LDF28vyJixozbaFpG8pJ+jGDAho+Zjt/XReOZQP0h51Y8md3/x/F0+gST4mn0mCskNtIQIDAQAB"'
];
foreach ($records as $i => $record) {
    if (stripos($record, "domainkey") !== false) {
        $initialIndex = $i;
        break;
    }
}
echo substr($records[$initialIndex], 0, -1).trim($records[$initialIndex + 1], '"').trim($records[$initialIndex + 2], '"')."\")";

这似乎非常具体,你能概括一下吗?在这种情况下,您可以执行以下操作:
echo substr($a[38],0,-1).trim($a[39],“”).trim($a[40],“”)。“\”)";问题是行不同,所以当我插入DNS规则时,下一次行可以是42、43和44。那么,我可以先使用数组搜索,然后使用规则吗?您希望使用此脚本实现的最终目标是什么?因为绑定区域文件和TXT记录的格式是有原因的,并且与它们交互是一个非常重要的操作。问题是行不同,所以当我插入DNS规则时,下一次行可以是42、43和44。那么我可以先使用数组搜索,然后使用规则?循环遍历数组。当您看到一个元素中有
)时,连接下一个元素。继续这样做,直到找到以
结尾的元素为止)