Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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,这是数组,我想得到这样的结果。数组有一个子数组,需要更改子数组的值 $arr = array( 0 => array( 0 => 'one', 1 => 'two', 2 => 'three' ), 1 => array( 0 => 'sun', 1 => 'mon', 2 => 'tues' ), 2 =&g

这是数组,我想得到这样的结果。数组有一个子数组,需要更改子数组的值

$arr = array(
  0 => array(
        0 => 'one',
        1 => 'two',
        2 => 'three'
        ),
  1 => array(
        0 => 'sun',
        1 => 'mon',
        2 => 'tues'
        ),
  2 => array(
        0 => 'jan',
        1 => 'feb',
        2 => 'march'
        )
  );

请给我提供解决方案。提前谢谢

要更改子数组项的值,只需添加另一个[]部分:


$arr[0][1]='sun'

要更改子数组项的值,只需添加另一个[]部分:


$arr[0][1]='sun'

我以递归的方式创建了它

$arr = array(
  0 => array(
        0 => 'one',
        1 => 'sun',
        2 => 'jan'
        ),
  1 => array(
        0 => 'two',
        1 => 'mon',
        2 => 'feb'
        ),
  2 => array(
        0 => 'three',
        1 => 'tues',
        2 => 'march'
        )
  );

你可以在这里检查它

我是用递归的方式做的

$arr = array(
  0 => array(
        0 => 'one',
        1 => 'sun',
        2 => 'jan'
        ),
  1 => array(
        0 => 'two',
        1 => 'mon',
        2 => 'feb'
        ),
  2 => array(
        0 => 'three',
        1 => 'tues',
        2 => 'march'
        )
  );

您可以在此处检查它

尝试使用此循环来处理您的需求

输出

数组([0]=>数组([0]=>一[1]=>太阳[2]=>一月[1]=>数组([0]=>两[1]=>周一[2]=>二月[2]=>数组([0]=>三[1]=>周二[2]=>三月))

代码

$arr = array(
        0 => array(
                    0 => 'one',
                    1 => 'two',
                    2 => 'three'
                    ),
        1 => array(
                    0 => 'sun',
                    1 => 'mon',
                    2 => 'tues'
                    ),
        2 => array(
                    0 => 'jan',
                    1 => 'feb',
                    2 => 'march'
                    )
        );

$new_arr = array();
$nb = count($arr);
$i = 0;
while($nb > 0){
    $nb--;
    $val1 = $arr[0][$i];
    $val2 = $arr[1][$i];
    $val3 = $arr[2][$i];
    $new_array[] = array($val1, $val2, $val3);
    $i++;
}

print_r($new_array);

尝试使用此循环来处理您的需求

输出

数组([0]=>数组([0]=>一[1]=>太阳[2]=>一月[1]=>数组([0]=>两[1]=>周一[2]=>二月[2]=>数组([0]=>三[1]=>周二[2]=>三月))

代码

$arr = array(
        0 => array(
                    0 => 'one',
                    1 => 'two',
                    2 => 'three'
                    ),
        1 => array(
                    0 => 'sun',
                    1 => 'mon',
                    2 => 'tues'
                    ),
        2 => array(
                    0 => 'jan',
                    1 => 'feb',
                    2 => 'march'
                    )
        );

$new_arr = array();
$nb = count($arr);
$i = 0;
while($nb > 0){
    $nb--;
    $val1 = $arr[0][$i];
    $val2 = $arr[1][$i];
    $val3 = $arr[2][$i];
    $new_array[] = array($val1, $val2, $val3);
    $i++;
}

print_r($new_array);

您可以使用带有null的数组映射函数作为回调函数

<?php 
$arr = array(
        0 => array(
                    0 => 'one',
                    1 => 'two',
                    2 => 'three'
                    ),
        1 => array(
                    0 => 'sun',
                    1 => 'mon',
                    2 => 'tues'
                    ),
        2 => array(
                    0 => 'jan',
                    1 => 'feb',
                    2 => 'march'
                    )
        );
    $newarray = [];
    $length = count($arr[0]); 
    foreach ($arr as $key => $value) {
        for ($i=0; $i < $length; $i++) { 
            $newarray[$i][$key] = $value[$i];

        }
        //break;
    }
    print_r($newarray);

可以使用带有null的数组映射函数作为回调函数

<?php 
$arr = array(
        0 => array(
                    0 => 'one',
                    1 => 'two',
                    2 => 'three'
                    ),
        1 => array(
                    0 => 'sun',
                    1 => 'mon',
                    2 => 'tues'
                    ),
        2 => array(
                    0 => 'jan',
                    1 => 'feb',
                    2 => 'march'
                    )
        );
    $newarray = [];
    $length = count($arr[0]); 
    foreach ($arr as $key => $value) {
        for ($i=0; $i < $length; $i++) { 
            $newarray[$i][$key] = $value[$i];

        }
        //break;
    }
    print_r($newarray);

向您好。您是想只针对这种特定情况还是您的阵列是动态的?@billyonecan对该解决方案印象深刻。你能解释一下吗?打个招呼。你是想只针对这种特定情况还是你的阵列是动态的?@billyonecan对这个解决方案印象深刻。你能解释一下吗?