【问题标题】:How to merge two objects in PHP如何在 PHP 中合并两个对象
【发布时间】:2018-02-11 17:32:43
【问题描述】:

尝试在 PHP 中合并两个数组时遇到问题。例如我有:

(
    [k] => Array
        (
            [aaaa] => 11
            [bbb] => 22
        )

)

然后是两个数组:

(
    [k] => Array
        (
            [ccc] => 333
            [dddd] => 444
            [eeee] => 555
            [ffff] => 666
        )
)

我想合并上面的两个数组如下:

(
    [k] => Array
        (
            [aaaa] => 11
            [bbb] => 22
            [ccc] => 333
            [dddd] => 444
            [eeee] => 555
            [ffff] => 666
        )
)

当我尝试将上面的array_push如下:

(
    [0] => Array
        (
            [k] => Array
                (
                    [aaaa] => 11
                    [bbb] => 22
                )

        )

    [1] => Array
    (
        [k] => Array
            (
                [ccc] => 333
                [dddd] => 444
                [eeee] => 555
                [ffff] => 666
            )
    )
)

那我该怎么办呢?

【问题讨论】:

  • array_push 不合并数组,你应该循环第一个数组的值和array_merge 它与第二个数组的对应值

标签: php array-merge array-push


【解决方案1】:
<?php

$arr1 = Array("ccc" => 333, "dddd" => 444, "eeee" => 555, "ffff" => 666);
$arr2 = Array("aaaa" => 11, "bbb" => 22, "ccc" => 333, "dddd" => 444, "eeee" => 555, "ffff" => 666);

作为数组返回

$arr3 = array_merge((array) $arr1, (array) $arr2);
print_r($arr3);

输出

Array ( [ccc] => 333 [dddd] => 444 [eeee] => 555 [ffff] => 666 [aaaa] => 11 [bbb] => 22 )

作为对象返回

$arr3 = (object)array_merge((array) $arr1, (array) $arr2);
print_r($arr3);

输出

stdClass Object ( [ccc] => 333 [dddd] => 444 [eeee] => 555 [ffff] => 666 [aaaa] => 11 [bbb] => 22 )
?>

【讨论】:

  • array(1) { ["k"]=> array(2) { ["aaaa"]=> string(2) "11" ["bbb"]=> string(2) "22" } } 数组(1) { ["k"]=> 数组(4) { ["ccc"]=> 字符串(3) "333" ["dddd"]=> 字符串(3) "444" ["eeee"]=> 字符串(3) "555" ["ffff"]=> 字符串(3) "666" } }
  • 我为什么要检查我的朋友我对你的回答没有异议,甚至我没有对你的回答发表任何评论。
  • @NikolaGavric 我的回答有什么问题吗?
【解决方案2】:

你可以试试array_merge($array1, $array2)

编辑:

对于多维数组,您必须像这样遍历它们:

$oneArr = [];
foreach($arrays as $arr) {
    array_merge($arr, $oneArr);
}
print_r($oneArr);

【讨论】:

  • 没关系
  • 什么意思没关系?这就是你如何将 2 个数组合并为一个数组
  • array(1) { ["k"]=> array(2) { ["aaaa"]=> string(2) "11" ["bbb"]=> string(2) "22" } } 数组(1) { ["k"]=> 数组(4) { ["ccc"]=> 字符串(3) "333" ["dddd"]=> 字符串(3) "444" ["eeee"]=> 字符串(3) "555" ["ffff"]=> 字符串(3) "666" } }
【解决方案3】:

非常感谢我解决了。

                                        <?php 
                                    $result = mysqli_query($link,"SELECT * FROM fiyatlar");
                                    $i=1;
                                    $veriler = array();
                                    while ($row = mysqli_fetch_array($result)) {

                                        $veriler = (unserialize($row['icerik']));

                                    foreach ($veriler['k'] as $key => $value) {
                                    ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 2019-10-08
    • 2013-04-08
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 2019-07-19
    相关资源
    最近更新 更多