首页 > 解决方案 > array_splice 不替换数组键值

问题描述

type在我的 html 表单中选择了一个复选框时,我试图替换数组键的值。

$trip['subtrips'] = [];

for ($i=0; $i<count($trip['locations'])-1; $i++) {
    array_push($trip['subtrips'], ['type' => 'normal', 'start' => $trip['locations'][$i], 'end' => $trip['locations'][$i+1]]);
}

if(isset($trip['standard'])) {
  array_splice($trip['subtrips'], 0, 0, ['type' => 'standard']);
}

上面的代码导致下面的数组是错误的。

Array ( 

[0] => standard 

 [1] => Array ( 
   [type] => normal 
   [start] => Location 1
   [end] => Location 2

) ) 

下面的数组是我想要得到的所需输出

Array ( 

  [0] => Array ( 
    [type] => standard 
    [start] => Location 1
    [end] => Location 2

) ) 

标签: phparrays

解决方案


你不需要array_splice()在这里使用函数。您可以在将新项目推送到数组之前确定 for 循环的类型。


推荐阅读