在我的PHP文件中,我总共收到4个变量$ data,$ date,$ shift和$ val1。 $ data是一个数组,另外3个是日期和2个通过AJAX毫无问题地获得的字符串。 我想做的就是将这3个值插入$ data变量中。
我尝试使用数组合并,并且使用For循环具有多个实例,但到目前为止还没有运气。
我这样获得变量:
if (isset($_POST['date'])){
$date = $_POST['date'];
$date = json_encode($date);
$date = json_decode($date);
}
if (isset($_POST['shift'])){
$shift = $_POST['shift'];
$shift = json_encode($shift);
$shift = json_decode($shift);
}
if (isset($_POST['val1'])){
$val1 = $_POST['val1'];
$val1 = json_encode($val1);
$val1 = json_decode($val1);
}
if (isset($_POST['data'])){
$dat = $_POST['data'];
$data = json_decode($dat, true);
}
$values = array($date,$shift,$val1);
$r = (array_merge($data, $values));
我的数据数组看起来像这样:
Array (
[0] => Array (
[data] => Array (
[0] => Array (
[0] => 1
[1] => 2
[2] => 3
[3] => 0
[4] => Mat1
[5] => Box1
[6] => 100
[7] => 100
[8] => Piece1
[9] => Loc1
[10] => Mach1
[11] => 1000
[12] => Accepted
)
)
)
[1] => 2019-04-09
[2] => First
[3] => Value1
)
但是我想要实现的是:
Array (
[0] => Array (
[data] => Array (
[0] => Array (
[0] => 1
[1] => 2
[2] => 3
[3] => 0
[4] => Mat1
[5] => Box1
[6] => 100
[7] => 100
[8] => Piece 1
[9] => Suc1
[10] => Mach1
[11] => 1000
[12] => Accepted
[13] => 2019-04-09
[14] => First
[15] => Value1
)
)
)
)
我在做什么错?或我该如何实现自己的目标?
编辑:由于我可以在一个数组中获得多个数组,所以类似
Array (
[0] => Array (
[data] => Array (
[0] => Array (...)
[1] => Array (...)
[2] => Array (...)
[3] => Array (...)
)
)
)
我刚刚将此代码添加到@HelgeB答案中,我将其保留在这里,以防将来有人需要它。
$count = count($data[0]['data']);
for ($i=0; $i < $count ; $i++) {
$data[0]['data'][$i][] = $date;
$data[0]['data'][$i][] = $shift;
$data[0]['data'][$i][] = $val1;
}
答案 0 :(得分:2)
从您的合并输出中可以看到,您的$data
数组结构为$data[0]['data'][0] = [1,2,3,...,'Accepted']
。
因此,我认为您需要在$data[0]['data'][0]
级别上准确插入值才能获得结果。
最简单的方法是:
$data[0]['data'][0][] = $date;
$data[0]['data'][0][] = $shift;
$data[0]['data'][0][] = $val1;
如果要使用合并方法,则需要在正确的级别进行合并,如下所示:
$r = [0 => ['data' => [0 => (array_merge($data[0]['data'][0], $values))]]];