Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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

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,我试图更改递归数组中嵌套数组的数量/深度未知的所有值。我想这只是我被语法绊倒了 基本上,我需要再次输出带有所有新值的$orgarray $orgarray = array( '101' => 'some-value', '102' => 'some-value', '103' => 'some-value', '104' => array( '201' => 'some-value', '202' =&

我试图更改递归数组中嵌套数组的数量/深度未知的所有值。我想这只是我被语法绊倒了

基本上,我需要再次输出带有所有新值的$orgarray

$orgarray = array(
    '101' => 'some-value',
    '102' => 'some-value',
    '103' => 'some-value',
    '104' => array(
        '201' => 'some-value',
        '202' => 'some-value',
        '203' => array(
            '301' => 'some-value',
            '302' => array(
                '401' => 'some-value',
                '402' => 'some-value',
                    '501' => array(
                    '502' => 'some-value',
                    '503' => 'some-value',
                    '504' => 'some-value',
                    '505' => 'some-value',
                    '506' => 'some-vaslue'
                    ),
                ),
            ),
        ),
    '105' => 'some-value',
    '106' => 'some-value',
    '107' => 'some-value'
);


function recursearray($array, &$modarray){

    foreach($array as $key => $value){

        if (is_array($value)){

            recursearray($value);
            // append keys to this nested array
                ???
        }else{

            // change current key's value
                ???

        }

    } 

}

recursearray($orgarray, $modarray);

echo '<pre>';
print_r($modarray);
echo '</pre>';

现在差不多了,但我仍然不明白为什么最初对函数的调用不起作用(recursearray($orgarray,$modarray);),而尝试向嵌套数组添加键的两个方法也不起作用。

我认为这会起作用:


注意
foreach($key=>数组和$value){


您好!

@Jack您看不到他提供的代码片段吗?您想更改什么?您希望得到什么结果?@Austinbrunkhost-什么代码片段?OP只提供了一个数组的打印输出。@felix,基本上我有一个CMS的API函数,它在一个方便的数组中输出文档ID,该数组的结构与站点结构匹配是的,但它返回的都是id。我需要查找每个id,获取有关它的一些信息[doc name,uri等],并用这些信息更新组织数组。您只需要
$array[$key]=$new\u value;
function recursearray($array, &$modarray){
    if(!isset($modarray)) {
        $modarray = array();
    }

    foreach($array as $key => $value){

        if (is_array($value)){

            recursearray($value, &$modarray);
            // append keys to this nested array
            // neither of these work
            array_push($value['newkey'] = 'new_value');
            $value['newkey'] = 'new_value';


        }else{

            // change current key's value
            $array[$key] = 'value';

        }

    } 
    return $array;
}

$modarray = recursearray($orgarray, $modarray);
<?php    
function recursearray(&$array){
    foreach($array as $key => &$value){
       if (is_array($value)){
          recursearray($value);
       }else{
          $value = 'other-value';
       };
    };
};
?>