数组替换功能对我不起作用

时间:2010-08-03 10:34:45

标签: php

php中是否有任何数组替换函数。

在php手册中有一个名为array_replace的函数,但它无效...

告诉我一些例子......

for array replace ..

4 个答案:

答案 0 :(得分:4)

<?php
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");

$basket = array_replace($base, $replacements, $replacements2);
echo '<pre>' .
print_r($base, true) .
print_r($basket, true) .
'</pre>';

<强>输出

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)
Array
(
    [0] => grape
    [1] => banana
    [2] => apple
    [3] => raspberry
    [4] => cherry
)

问题是:究竟什么不适用于

答案 1 :(得分:1)

有一种更简单的方法。解引用:

$myarray = array("Peter", "Brian", "Stewart");
$myarray['2'] = "Stewie";

print_r($myarray);

输出:

Array
(
    [0] => Peter
    [1] => Brian
    [2] => Stewie
)

答案 2 :(得分:0)

我不记得我在哪里找到了这个解决方案,所以我不能赞扬为没有array_replace功能的服务器创建这个替代array_replace函数的人。它工作得很好并且可以无缝添加,因为您不需要更改使用array_replace函数的现有代码。

编辑:找到了作者。感谢MikevHoenselaar:https://github.com/MikeRogers0/PHP-HTML5-Form-class/issues/4

// Fallback function if the PHP Server does not have the array_replace function
if ( !function_exists('array_replace') ) {

    function array_replace() { 
        $array = array();    
        $n = func_num_args(); 

        while ( $n-- >0 ) { 
            $array+=func_get_arg($n); 
        } 
    return $array; 
    }
}

答案 3 :(得分:0)

请检查我下面的真实示例,以便您更好地了解阵列更换。它是指存储在会话变量中的购物车。最后一行代码通过取消引用将更新后的产品阵列替换为现有产品阵列。 ->hasRole

$_SESSION['cart'][$index] = $product;