如何在PHP中将array1的每个项合并到新数组中

如何在PHP中将array1的每个项合并到新数组中,php,arrays,loops,associative-array,array-merge,Php,Arrays,Loops,Associative Array,Array Merge,我的处境很困难。 我将有一个类似的数组 array( 'title' => array( "ABC", "DEF", "GHI" ), "url" => array( "abc", "def", "ghi" ) ); 现在,我想用如下数据创建新阵列: array( array( "title" => "ABC",

我的处境很困难。 我将有一个类似的数组

array(
    'title' => array(
        "ABC",
        "DEF",
        "GHI"
    ),
    "url" => array(
        "abc",
        "def",
        "ghi"
    )
);
现在,我想用如下数据创建新阵列:

array(
    array(
        "title" => "ABC",
        "url" => "abc",
    ),
    array(
        "title" => "DEF",
        "url" => "def",
    ),
    array(
        "title" => "GHI",
        "url" => "ghi",
    ),
);
我使用foreach循环,但事实上,我有10多个数组。如果我为每个循环创建10个foreach循环,则会降低性能

所以我的问题是:

  • 它在PHP中有什么功能可以做到这一点,还是我们必须自己做

感谢您的阅读和回答。

是否可以将数组转换为预期的数组

它在PHP中有什么功能可以做到这一点,还是我们必须自己做

没有

您应该使用for循环在两个数组上循环以构造所需的数组

示例:

$array = ["a", "b"];
$array2 = ["b", "c"];

$newArray = [];

foreach ($array as $key => $value)
{
    $newArray[$key] = [];
    $newArray[$key]["title"] = $value;
}

foreach ($array2 as $key => $value)
{
    $newArray[$key]["url"] = $value;
}


var_dump($newArray);

是否可以将数组转换为预期的数组

它在PHP中有什么功能可以做到这一点,还是我们必须自己做

没有

您应该使用for循环在两个数组上循环以构造所需的数组

示例:

$array = ["a", "b"];
$array2 = ["b", "c"];

$newArray = [];

foreach ($array as $key => $value)
{
    $newArray[$key] = [];
    $newArray[$key]["title"] = $value;
}

foreach ($array2 as $key => $value)
{
    $newArray[$key]["url"] = $value;
}


var_dump($newArray);

您需要使用simple
foreach()


输出:-

您需要使用simple
foreach()


输出:-

这将与主阵列中的任意数量的子阵列一起动态工作。
它使用数组_键查找所有子数组

$keys = array_keys($arr);
$count = count($arr[$keys[0]]);

For($i=0; $i<$count; $i++){
    Foreach($keys as $key){
        $res[$i][$key] = $arr[$key][$i];
    }
}

Var_dump($res);
$keys=array\u keys($arr);
$count=count($arr[$keys[0]]);

对于($i=0;$i这将在主阵列中的任意数量的子阵列中动态工作。
它使用数组_键查找所有子数组

$keys = array_keys($arr);
$count = count($arr[$keys[0]]);

For($i=0; $i<$count; $i++){
    Foreach($keys as $key){
        $res[$i][$key] = $arr[$key][$i];
    }
}

Var_dump($res);
$keys=array\u keys($arr);
$count=count($arr[$keys[0]]);

对于($i=0;$iSince,因为没有公共数据,我想说自己做可能更容易
@aynber我这么做了,但我只是要求一个比foreach更好的方法。因为我有超过02个数组,比如示例。我必须做10次foreach循环。这将影响性能。@TommyDo试试我的答案,它应该会像你预期的那样工作,因为没有公共数据,我想说自己做可能更容易。使用simple
foreach()
@aynber我这么做了,但我只是要求一个比foreach更好的方法。因为我有超过02个数组,比如示例。我必须做10次foreach循环。这会影响性能。@TommyDo试试我的答案,它应该会像你期望的那样工作。谢谢你的快速响应。我做了与你相同的结果,但事实上我有两个以上的数组“title”,“url”。可能是10个数组。因此,通过这种方式,我必须为每个循环做10个。我只是担心性能。感谢您的快速响应。我做了与您相同的结果,但事实上我有两个以上的数组“标题”,“url”。可能是10个数组。所以用这种方法,我必须为每个循环做10个。我只是担心性能。这不起作用,OP在上面的评论中更新了他的要求。我在OP更改要求的10分钟后给出了答案。现在你给出了答案。我知道,我只是想我应该提一下。这不起作用,OP在c中更新了他的要求当OP改变他的要求时,我在10分钟前给出了答案。现在你们给出了答案。我知道,只是觉得我应该提一下。