gpt4 book ai didi

php - array_replace() 与 PHP 中的联合运算符

转载 作者:IT王子 更新时间:2023-10-28 23:54:27 24 4
gpt4 key购买 nike

在 PHP 中,(假设 $a$b$c 是数组)是 $a = array_replace($b, $c) 总是在功能上等同于 $a = $c + $b?

我似乎找不到任何可能表明情况并非如此的极端情况。

(只是处理一维,这个问题与递归无关,即:array_replace_recursive())


编辑:我在评论中发现了一条注释,提示联合运算符将保留引用,但我没有注意到 array_replace() 未能做到这一点。

最佳答案

编辑:抱歉,我没有注意到参数被颠倒了。答案是肯定的,因为生成的数组总是合并两个数组,但是 + 优先考虑第一个数组中的值,而 array_replace 优先考虑第二个。

唯一实际的区别在于性能,其中 + 可能 更可取,因为当它找到重复值时它不会替换值;它只是继续前进。此外,它不需要(相对昂贵的)函数调用。


没有。 array_replace 替换元素,而 + 考虑第一个值:

<?php
print_r(array_replace([0 => 1], [0 => 2]));
print_r([0 => 1] + [0 => 2]);
Array(    [0] => 2)Array(    [0] => 1)

收件人cite手册:

The + operator returns the right-hand array appended to the left-hand array; for keys that exist in both arrays, the elements from the left-hand array will be used, and the matching elements from the right-hand array will be ignored.

至于引用,它们在两种情况下都被保留。

关于php - array_replace() 与 PHP 中的联合运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8537384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com